0

json 配列を逆シリアル化する必要があります。

{"response":
[19,
    {"mid":1068,
     "date":1343848664,
     "out":1,
     "uid":44852633,
     "read_state":1,
     "title":" ... ",
     "body":"А я вовсю."},
    {"mid":1007,
     "date":1328782448,
     "out":1,
     "uid":16098752,
     "read_state":0,
     "title":" ... ",
     "body":"http:\/\/theantidj.net\/wp-content\/themes\/theantidjnet\/images\/khubvio.php"}

等々。私はjson.netを使用しています。JsonConvert.DeserializeObject() を使用して逆シリアル化を実行できますか? もしそうなら、どのクラスを作成する必要がありますか?

4

3 に答える 3

1

ちょうど別の解決策。

var itemList = ((JObject)JsonConvert.DeserializeObject(json))["response"]
                .Skip(1)
                .Select(x => JsonConvert.DeserializeObject<Item>(x.ToString()))
                .ToList();


public class Item
{
    public int mid { set; get; }
    public string date { set; get; }
    public int @out { set; get; }
    public int  uid { set; get; }
    public int read_state { set; get; }
    public string title { set; get; }
    public string body { set; get; }
}
于 2012-08-17T17:34:48.353 に答える
0

LBは解決策を提供しました。しかし、私の記憶がうまく機能していれば、JObjectが動的型に使用されていることに気付くでしょう。したがって、.Net 4以降が必要です。念のため。

于 2012-08-17T17:01:52.063 に答える
-1

JsonConvert.DeserializeObject<RootObject>(jsonstring)これを定義した後に使用できますRootObject

私が使用しているツールはhttp://json2csharp.comで、JSONを入力して、対応するオブジェクトを取得するだけです。ただし、現在の形式では解析されていないため、JSONが適切に形成されていることを確認する必要があります。

于 2012-08-17T16:22:37.927 に答える