提取JSON数组名称C#

时间:2016-11-22 11:13:30

标签: c# arrays json

我试图通过API使用JSON.NET反序列化这片json,我只想提取代表每个数组的名称,即John,Marie和Bob。是否可以使用foreach或任何类型的方法提取每个数组的名称?

以下是我目前的方式:

pixel launcher keeps stopping

来自JSON的数据(responseFromServer)

WebRequest request = WebRequest.Create("...API URL...");
WebResponse response = request.GetResponse();
Stream dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);

string responseFromServer = reader.ReadToEnd();

reader.Close();
response.Close();
var jss = new JavaScriptSerializer();
var dict = jss.Deserialize<Dictionary<string, dynamic>>(responseFromServer);


foreach (var item in dict["data"])
{
   string arrayName= Convert.ToString(item["data"]["?array_names?"]);
   Console.WriteLine(arrayName);
}

[编辑:在开始和结束时添加了缺失{},抱歉]

提前致谢

2 个答案:

答案 0 :(得分:3)

假设有效的json格式 - 后面会产生结果 -

var json = "{'data':{'John':{'id':266,'title':'Good old john','name':'John Shepard','key':'JS'},'Marie':{'id':412,'title':'Helper Marie','name':'Marie Godfather','key':'MG'},'Bob':{'id':23,'title':'Uncle Bob','name':'Bob Plane','key':'BP'}}}";
var t = JObject.Parse(json)["data"];
foreach(JProperty j in t){
   Console.WriteLine(j.Name);
} /*John
    Marie
    Bob*/

建议使用JSON.Net来处理json数据类型。

答案 1 :(得分:-1)

{{1}}