2016-06-29 1 views
7

"この関数でAzure関数を作成しました。JSONを返すAPIを呼び出します。このJSONをオブジェクトに構文解析して関数で使用できるようにしたいのですが、できません。関数としてNewton.JSONを使わないでください。 JSONをどのように解析できますか? "Azure関数でJsonを解析する方法

+0

可能な重複します。http: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); } 

このサンプル出力を返します:私は次のようにあなたがあなたの答えを変更することを示唆しています://stackoverflow.com/questions/37335321/newtonsoft-json-reference-complaining-on-azure-functions) –

+0

Azure関数環境にJson.NET *が追加されました。あなたのコードを投稿してください。それがなければ何が間違っているのかを推測することは不可能です。おそらく、あなたはアセンブリ参照がありません –

答えて

0

Azure関数では、まずNewtonSoft.JSONへの参照を追加する必要があります。これは "Newtonsoft.Json"で行うことができます。引用符を忘れないでください!!!あなたはnewtonsoftを経由して、通常の直列化を使用することができたより

:ここ

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

は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\"}" 
4

上記の答えは、JSONではなく文字列を返すことです。

{"Category":"Azure Functions","Action":"Run","Label":"Test"} 
[Azureの機能に文句Newtonsoft.Json参照](の
関連する問題