「この関数で Azure 関数を作成しました。JSON を返す API を呼び出します。関数で使用できるように、この JSON をオブジェクトに解析したいのですが、関数が認識していないように見えるため、Newton.JSON を使用できません。これ。どうすれば JSON を解析できますか?」
29736 次
4 に答える
44
JsonNet を使用してオブジェクトをシリアル化/逆シリアル化するための完全な Azure 関数ソース コードを次に示します。
#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\"}"
于 2016-09-23T13:44:04.713 に答える
6
上記の回答は、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"}
于 2016-12-28T19:38:43.803 に答える