2017-09-04 3 views
2

は、私は次のような構造を持つJSON文字列を持っているネットコアでJSON文字列を解析する方法フィールドはつまり、可変である内部手動で2.0

{ 
    "resource": "user", 
    "method": "create", 
    "fields": { 
     "name": "John", 
     "surname: "Smith", 
     "email": "[email protected]" 
    } 
} 

キーは私が事前にそれらを知りません

ので、代わりにオブジェクトをJSON文字列をデシリアライズ、私はフィールド辞書またはそのような何かで内部のプロパティを取得するためには、JSONを横断する必要があります。

Json.NETライブラリについて聞いたことがありますが、ダイナミックjsonsを解析する機能はありますが、すでにnet-coreに含まれているかどうかはわかりません。

net-core 2.0でこれを達成するための標準的で最も簡単な方法は何でしょうか。コード例は高く評価されます。

+1

ように見えるかもしれあなたのJSONのサンプルを考えます。 – MarcinJuraszek

答えて

4

はい:ここ

dotnet add package System.Json --version 4.4.0 

はSystem.Json名前空間のAPIを使用する方法についてのすてきなチュートリアルです。 .netコアプロジェクトにNewtonsoft.jsonパッケージを追加することができます。また、動的jsonオブジェクトを照会するには、ライブラリによって提供されるJObjectオブジェクトを使用して、jsonを解析して動的オブジェクトにすることができます。この文書にはlinkがあります。

それははい、あなたは.NETのコアでJson.NETを使用することができ、この

var resource = JObject.Parse(json); 
foreach (var property in resource.fields.Properties()) 
{ 
    Console.WriteLine("{0} - {1}", property.Name, property.Value); 
} 
+0

Jobjectにフィールドの定義が含まれていません... –

+0

これは私にとってはうまくいきました:foreach(resource.Properties()のvarプロパティ) –

0

Json.NETは、.NETオブジェクトをシリアライズするときのgo-toライブラリです。ただし、オブジェクトの構造が静的でない場合は、System.Json名前空間のAPIを使用する方が簡単になります。 System.Jsonは次のようにNuGetからパッケージをインストールすることで、.NETのコア2.0で使用することができます:Working with JSON in .NET – a Silverlight example

関連する問題