c# - C# 中的 Foreach Json 对象

标签 c# arrays json object

我正在使用 Daniel Crenna 创建的 Json 库。

我有一个字符串 json 文档:

{
    "id": "00132",
    "items":[
        {
           "name":"papers"
        },
        {
           "name":"glasses"
        }
    ]
}

我反序列化它,如果我想访问“id”,我可以这样做:

Console.WriteLine(myjsonvar.id);

但是如果我尝试 foreach“items”属性:

foreach(var item in myjsonvar.items){
    Console.WriteLine(item.ToString());
} 

它显示:“System.Collections.Generic.Dictionary'2[System.String,System.Object]”

如果我在其中执行另一个 foreach:

 foreach(var item in myjsonvar.items){
        foreach(var properties in item){
            Console.WriteLine(properties);
        }
  }

我收到“[姓名,论文]

我该如何访问以下属性:

 foreach(var item in myjsonvar.items){
        var itemName = item.name;
  }

感谢您的回复。

最佳答案

由于 items 是一个字典数组,因此您的 item 变量是一个字典,您可以尝试使用索引器 [] 访问其中的对象>:

var itemName = item["name"];  // returns "papers", "glasses", etc.

传入索引器的是键(属性名称),返回的是值。

请注意,JSON 对象中的属性可以是字符串、整数、 bool 值、其他对象或数组,这就是字典的值为 System.Object 的原因。由您决定将其转换为其基础类型。在这种情况下,item["name"].ToString() 应该可以工作。

在此处了解更多信息:Dictionary Class

关于c# - C# 中的 Foreach Json 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40287186/

相关文章:

C# 随机不变

c# - 如何使用 Microsoft.Azure.Management.Fluent 在 Azure 存储帐户上设置最低 TLS;

arrays - 在 Excel VBA 中过滤二维数组

javascript - 通过 JS 获取 Select 选项值并设置数组索引

jquery - 通过交替点击对 JSON Z-A 进行排序

java - 使用gson将json数组转换为android中的json对象?

c# - 关闭时是否需要使用互锁?

python - 改变字符串的最后一个字节

java - 将 JSONArray 字符串转换为数组

c# - 超时后从集合中删除项目