2013-03-31 63 views
37

我正在使用Json.Net来解析数组。我想要做的是从数组中拉出名称/值对,并在解析JObject时将它们分配给特定的变量。使用Json.Net解析JSON数组

下面是我在数组中已经有了:

[ 
    { 
    "General": "At this time we do not have any frequent support requests." 
    }, 
    { 
    "Support": "For support inquires, please see our support page." 
    } 
] 

这里就是我在C#已经有了:

WebRequest objRequest = HttpWebRequest.Create(dest); 
WebResponse objResponse = objRequest.GetResponse(); 
using (StreamReader reader = new StreamReader(objResponse.GetResponseStream())) 
{ 
    string json = reader.ReadToEnd(); 
    JArray a = JArray.Parse(json); 

    //Here's where I'm stumped 

} 

我是相当新的JSON和Json.Net ,所以它可能是其他人的基本解决方案。我基本上只需要在foreach循环中分配名称/值对,以便我可以在前端输出数据。有没有人做过这个?

回答

86

你可以在这样的数据值获得:

string json = @" 
[ 
    { ""General"" : ""At this time we do not have any frequent support requests."" }, 
    { ""Support"" : ""For support inquires, please see our support page."" } 
]"; 

JArray a = JArray.Parse(json); 

foreach (JObject o in a.Children<JObject>()) 
{ 
    foreach (JProperty p in o.Properties()) 
    { 
     string name = p.Name; 
     string value = (string)p.Value; 
     Console.WriteLine(name + " -- " + value); 
    } 
} 

小提琴:https://dotnetfiddle.net/uox4Vt

+3

你摇滚......这为我做这 – johngeek

+1

一个帮助 – JSHunjan

+0

先生,你能告诉我怎么能我得到/读取所有的数据作为回应。我的意思是我的价值是'closed',我的回答是80作为列表的价值。如何访问这些值?请帮帮我。 – tpbafk