"Mam utworzyć funkcję Azure w tej funkcji Wzywam API, które zwraca JSON.Chcę sparsować ten JSON do obiektu, dzięki czemu mogę go używać w funkcji. nie używaj Newton.JSON, ponieważ funkcja wydaje się o tym nie wiedzieć Jak mogę analizować JSON? "Jak mogę Parsować Json w funkcji Azure
7
A
Odpowiedz
0
W funkcji Azure jako pierwszej należy dodać odniesienie do NewtonSoft.JSON. Możesz to zrobić za pomocą "Newtonsoft.Json". Nie zapomnij cytatów !!!
niż można normalnie korzystać z serializacji poprzez newtonsoft:
var response = await client.GetAsync("<url>");
var json = await response.Content.ReadAsStringAsync();
var o= JsonConvert.DeserializeObject<"Type">(json);
24
Powyżej znajduje się pełna Azure kod źródłowy funkcji do szeregowania/deserializacji obiektów za pomocą 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; }
}
wejściowy Sample (request ciała) :
{
"Category": "Azure Functions",
"Action": "Run",
"Label": "Test"
}
Przykładowa produkcja:
"{\"Category\":\"Azure Functions\",\"Action\":\"Run\",\"Label\":\"Test\"}"
4
Powyższa odpowiedź zwraca ciąg znaków, a nie JSON. Proponuję, żeby zmodyfikować swoją odpowiedź następująco:
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);
}
ta zwróci Przykładowe wyjście bez JSON ucieka:
{"Category":"Azure Functions","Action":"Run","Label":"Test"}
Możliwy duplikat [Newtonsoft.Json odsyłającego skargę na Azure Functions] (http : //stackoverflow.com/questions/37335321/newtonsoft-json-reference-complaining-on -azure-functions) –
Json.NET * jest * dodany do środowiska Azure Functions. Proszę zaksięguj swój kod. Bez tego nie można odgadnąć, co jest nie tak. Najprawdopodobniej brakuje odniesienia do zespołu –