8

私はC#に手を出し始めたばかりで、しばらくの間JSONの逆シリアル化に頭を悩ませてきました。Newtonsoft.Jsonライブラリを使用しています。私はそのような辞書の配列のjson応答だけを期待しています

[{"id":"669","content":" testing","comments":"","ups":"0","downs":"0"}, {"id":"482","content":" test2","comments":"","ups":"0","downs":"0"}]

今私は持っています:(注:ダウンロードはjson文字列を保持する単なる文字列です)

string[] arr = JsonConvert.DeserializeObject<string[]>(download);

私はこれを行うための多くの異なる方法を試しましたが、それぞれが失敗しました。このタイプのjsonを解析するための標準的な方法はありますか?

4

2 に答える 2

20

文字列ではなくオブジェクトの配列があります。プロパティをマップし、それにデシリアライズするクラスを作成し、

public class MyClass {
    public string id { get; set; }
    public string content { get; set; }
    public string ups { get; set; }
    public string downs { get; set; }
}

MyClass[] result = JsonConvert.DeserializeObject<MyClass[]>(download);

JSONには基本的なタイプがいくつかありますが、それらを学習して認識することは役に立ちます。オブジェクト、配列、文​​字列など。http://www.json.org/およびhttp://www.w3schools.com/json/default.aspは、開始するための優れたリソースです。たとえば、JSONの文字列配列は次のようになります。

["One", "Two", "Three"]
于 2013-02-01T05:02:51.980 に答える
2

私はこれを実装し、これがすべての役に立つことを願っています。

 var jsonResponse = 
  [{"Id":2,"Name":"Watch"},{"Id":3,"Name":"TV"},{"Id":4,"Name":""}]

 var items = JsonConvert.DeserializeObject<List<MyClass>>(jsonResponse);

ここで、MyClassはエンティティです

 public class MyClass
            {
                public int Id { get; set; }
                public string Name { get; set; }
            }
于 2013-10-25T09:59:42.420 に答える