我正在使用 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/