4

私はこのようなJsonを持っていました

{ "nodes" : [{"id" : "36018","title" : "Fotarı","date" : "20.09.2012 00:45", "short_description" : "Dünrina, rr!","bigimage_width" : "468","bigimage" : "https://qew","croppedimage" : "https://qwe.jpg"},{"id" : "36009","title" : "ey","date" : "20.09.2012 00:03", "short_description" : "İntız!","bigimage_width" : "220","bigimage" : "https://312.jpg","croppedimage" : "https://41172.jpg"},{"id" : "35915","title" : "ai!","date" : "20.09.2012 00:02", "short_description" : "Ssdi...","bigimage_width" : "220","bigimage" : "https://qwe.qwe" : "https://asd.asd"},...

だから私はこれをやった

JObject j = JObject.Parse(x); // x is downloaded JSon code
JArray sonuc = (JArray)j["nodes"];

しかし今、私は持っています

[{"id":"1","name":"news"},{"id":"2","name":"hardware"},{"id":"3","name":"software"},{"id":"4","name":"\internet"},{"id":"6","name":"tv!"},{"id":"7","name":"texts"},{"id":"8","name":"update"},...

では、コードを機能させるにはどうすればよいでしょうか?

JObject j = JObject.Parse(x); // gives JsonReaderException exception here
JArray sonuc = (JArray)j[""];
4

2 に答える 2

7

JSON に配列がある場合 (開き括弧[と閉じ括弧に注意してください)、 JArray.Parse静的メソッド]を使用して直接解析できます。

JArray sonuc = JArray.Parse(x);
于 2012-09-20T07:26:20.907 に答える
1

jsonを解析する方法はたくさんあります。たとえば、次のように使用できます。dynamic

dynamic obj1 = JsonConvert.DeserializeObject(json);
foreach (var node in obj1.nodes)
{
    Console.WriteLine("{0} {1}", node.id, node.title);
}

またはlinq

var obj2 = (JObject)JsonConvert.DeserializeObject(json);
var nodes= obj2["nodes"].Children()
            .Select(node => new
            {
                Id= (string)node["id"],
                Title = (string)node["title"]
            })
            .ToList();
于 2012-09-20T07:50:52.110 に答える