Как я могу распарсить JSON в функцию Лазурное



" я создал функцию Azure в этой функции я вызываю API, который возвращает JSON. Я хочу разобрать этот JSON на объект, чтобы использовать его в функции. Я не могу не использовать Ньютона.JSON как функция, похоже, не знает этого.
Как я могу разобрать JSON?"

603   3  

3 ответов:

В функции Azure сначала нужно добавить ссылку на NewtonSoft.формат JSON. Вы можете сделать это через "Newtonsoft.формат JSON". Не забывайте о цитатах!!!

Чем можно воспользоваться обычной сериализацией через newtonsoft:

var response = await client.GetAsync("<url>");
var json = await response.Content.ReadAsStringAsync();
var o= JsonConvert.DeserializeObject<"Type">(json);

Вот полный исходный код функции Azure для сериализации / десериализации объектов с помощью JsonNet:

#r "Newtonsoft.Json"

using System.Net;
using Newtonsoft.Json;

public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log)
{
    dynamic body = await req.Content.ReadAsStringAsync();
    var e = JsonConvert.DeserializeObject<EventData>(body as string);
    return req.CreateResponse(HttpStatusCode.OK, JsonConvert.SerializeObject(e));
}

public class EventData
{
    public string Category { get; set; }
    public string Action { get; set; }
    public string Label { get; set; }
}

Пример ввода (тело запроса):

{
    "Category": "Azure Functions",
    "Action": "Run",
    "Label": "Test"
}

Пример вывода:

"{\"Category\":\"Azure Functions\",\"Action\":\"Run\",\"Label\":\"Test\"}"

Вы отвечаете выше, возвращая строку, а не JSON. Я бы предложил вам изменить свой ответ следующим образом:

public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log)
{
    dynamic body = await req.Content.ReadAsStringAsync();
    var e = JsonConvert.DeserializeObject<EventData>(body as string);
    return req.CreateResponse(HttpStatusCode.OK, e);
}

Это вернет образец вывода без экранирования JSON:

{"Category":"Azure Functions","Action":"Run","Label":"Test"}

Comments

    Ничего не найдено.