【问题标题】:Get the value of a JSON Array C# using Json.Linq使用 Json.Linq 获取 JSON 数组 C# 的值
【发布时间】:2020-05-19 17:48:13
【问题描述】:

我喜欢获取 JSON 数组的第一个值。

我的 JSON:

{
    "userlist": [
        {
            "id": 123,
            "name": "Max",
        }
    ],
}

我有什么:

public int JSONId(string JSONstring)
        {
            JObject responseJSON = JObject.Parse(ResponseGETSearchForCorrectID);
            int id = (int)JArray.Parse(ResponseGETSearchForCorrectID).Children()["userlist"]["id"].First();

            return id;
        }

但我收到此错误: Newtonsoft.Json.JsonReaderException:'从 JsonReader 读取 JArray 时出错。当前 JsonReader 项不是数组:StartObject。路径'',第 1 行,位置 1。'

我也试过了:

int idPackage = responseJSON["userlist"]["id"].Values;

但也不起作用,因为我收到信息异常,这是一个数组。

我在这里做错了什么?有人解决了吗?

谢谢。

【问题讨论】:

  • 尾随逗号会破坏它
  • 您的 JSON 无效。删除,在]之后
  • 我编辑并缩短了 JSON 文件以便更容易理解。 ] 之后还有更多内容,但感谢您提供的信息

标签: c# json


【解决方案1】:

试试这个方法

int idPackage = responseJSON["userlist"][0]["id"].Value<int>();

由于 userliat 是一个数组,你必须通过索引来访问对象。

【讨论】:

    【解决方案2】:

    试试这个方法:

    var obj = JsonConvert.DeserializeObject(str);
    int id = obj.userlist[0].id;
    

    【讨论】:

      猜你喜欢
      • 2017-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-24
      • 1970-01-01
      相关资源
      最近更新 更多