2016-02-06 24 views
7

ダイナミックのC#に私はこの問題を次のようしている:私はこの逆シリアル化JSON

dynamic dyn = JObject.Parse(json); 
ようNewtonsoftと、このJSON-ファイルを解析した場合、私はこの

{ 
    "Path": { 
     "FirstPath": "/1/2/text()" 
    } 
} 

のように見えるJSONファイルを持っています

またはこの

dynamic dyn = JsonConvert.DeserializeObject(json); 

私はこの

のように使用する必要のある動的オブジェクトを取得します
dyn.Path.FirstPath.Value 

Value stuffを削除するにはどうすればよいですか? JSON内のすべてのオブジェクトは文字列になります。私は必ずしも必要でないならば、最後に ".Value"と書いておきたいとは思わない。

答えて

11

私はこれをNewtonsoft 8.0.2でテストしました。

 dynamic dyn = JObject.Parse(json); 

     string value = dyn.Path.FirstPath; 

値は/1/2/text()である必要があります。

+0

はい、もっと見ると、 "value"は文字列ではなく、 "Newtonsoft.Json.Linq.JValue"の文字列であることがわかります。あなたが "値"を取って文字列を期待するメソッドに渡すと、例外が発生します。これは、 "value.Value"を書く場合にのみ機能します。 – Shamshiel

+0

"var"を "string"に置き換えてください。私は私の答えを更新しました。 –

関連する問題