无法解析JSON多次存在同名时

时间:2018-05-30 15:09:37

标签: c# json

我正在解析JSON以提取名称详细信息。但是,我收到一个错误。 能否帮我提取姓名详情。

var jsonResult = JObject.Parse(jsonFileContents);
Console.WriteLine("Name :" + jsonResult["Name"]);

jsonFileContents:

[
  {
    "Name": "Joe",
    "Age": 25,
    "Rank": 1
  },
  {
    "Name": "Peter",
    "Age": 32,
    "Rank": 2
  }
]

错误:             未处理的异常:Newtonsoft.Json.JsonReaderException:从JsonReader读取JObject时出错。当前的JsonReader项目

2 个答案:

答案 0 :(得分:3)

看起来,您的输入JSON是JSON数组。它需要解析如下

您需要指定索引以提取相应的元素。例如,要提取名字。

var jsonResult = JArray.Parse(jsonFileContents);
Console.WriteLine("Name :" + jsonResult[0]["Name"]);

如果要提取所有名称详细信息,则可以按以下方式迭代并获取

从JSON数组中提取所有名称详细信息:

       var jsonResult = JArray.Parse(jsonFileContents);
       for(int i = 0; i < jsonResult.Count; i++)
        {
            Console.WriteLine(jsonResult[i]["Name"]);
        }

答案 1 :(得分:1)

您必须查看json对象的结构

它是jsonobject&gt;对象的索引数组&gt;每个对象都包含名称年龄

所以获得第一个对象就像jsonresult [0] [“Name”]