【问题标题】:How to access item in array in JSON in C#如何在 C# 中以 JSON 格式访问数组中的项目
【发布时间】:2021-01-28 22:11:58
【问题描述】:
string json = "{"httpStatusCode": "OK",
      "count": 10,
      "entities": [
        {
          "responseCode": 200,
          "ResponseCode": 0,
          "headers": null,
          "Headers": null,
          "content": "name1"
        },
        {
          "responseCode": 200,
          "ResponseCode": 0,
          "headers": null,
          "Headers": null,
          "content": "name2"
        }
      ]
    }"

我用这段代码,不能打印出“content”的值(name1,name2),它只会跳过if语句

JObject o = JObject.Parse(json);
foreach (var element in o["entities"])
    {
        foreach(var ob in element)
        {
            if(ob.toString() == "content")
                Console.WriteLine(ob);
        }
    }

那么,我怎样才能打印出 name1 和 name2?谢谢。

【问题讨论】:

  • 您是否尝试过调试器单步调试代码以验证事情是否符合您的预期?
  • 请在您的问题和标签中添加一个用于解析 JSON 的库。

标签: c# json linq json.net


【解决方案1】:

我假设您的示例代码使用 Newtonsoft.Json 库。

对您的代码进行一些修改实际上可以使您的代码正常工作。 您需要在 JSON 中搜索名为“content”的属性。为此,将您的 JToken 转换为 JProperty 类型。然后你可以像这样访问它的名字和值:

JObject o = JObject.Parse(json);
foreach (var element in o["entities"])
{
    foreach (var ob in element)
    {
        if (ob is JProperty prop && prop.Name == "content")
            Console.WriteLine(prop.Value.ToString());
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-31
    • 1970-01-01
    • 2020-10-01
    • 1970-01-01
    • 2021-06-08
    • 1970-01-01
    • 2018-05-06
    相关资源
    最近更新 更多