2017-01-21 18 views
0

私はC#で新たなんだと、このJSON文字列があります。このコードでその文字列を解析してみてください
C#でjsonをnewtonjsonで解析するにはどうすればよいですか?

"{\"Result\":0,\"Packages\":[{\"Count\":5.0,\"Price\":100000},{\"Count\":10.0,\"Price\":170000},{\"Count\":20.0,\"Price\":300000},{\"Count\":50.0,\"Price\":600000},{\"Count\":100.0,\"Price\":900000}],\"IsArbitrary\":true}" 


を:

dynamic dynObj = JsonConvert.DeserializeObject(html); 


しかし、私は、例えば、アレイ用にアクセスしたいですインデックスゼロまたは配列インデックス1、どのように私はその目的のためのコードを書くことができますか?ありがとう。

答えて

2

問題を解決する他の方法がない限り、dynamicを使用しないでください。ここでは、あなたのデータをマップするタイプを作成する方法です。

private struct DataHolder 
{ 
    public decimal result { set; get; } 
    public Package[] Packages { set; get; } 
    public bool IsArbitrary { set; get; } 
} 

private struct Package 
{ 
    public decimal Count { set; get; } 
    public decimal Price { set; get; } 
} 

static void Main(string[] args) 
{ 
    string html = "{\"Result\":0,\"Packages\":[{\"Count\":5.0,\"Price\":100000},{\"Count\":10.0,\"Price\":170000},{\"Count\":20.0,\"Price\":300000},{\"Count\":50.0,\"Price\":600000},{\"Count\":100.0,\"Price\":900000}],\"IsArbitrary\":true}"; 

    DataHolder data = JsonConvert.DeserializeObject<DataHolder>(html); 

    foreach(var package in data.Packages) 
    { 
     // do something with package.Count or package.Price 
    } 
} 

その後、あなたはそれの上にPackagesとループにアクセスすることができ、静的オブジェクトを持っています。

+0

ありがとうございました。本当に、今、どのようにしてforループでユーザーにデータを表示できますか? –

+0

@behzadrazzaqi更新された回答を確認してください。 – user3185569

+0

助けてくれてありがとう –

関連する問題