c# Json动态对象
本文关键字:对象 动态 Json | 更新日期: 2023-09-27 18:10:22
我正在使用一个Json动态对象。
这是我用来从对象中获取数据的方法:
string = obj.item.today.price;
这工作得很好,问题是,一旦我不得不开始使用数字示例:
string = obj.daily.10000;
显示错误
有办法解决这个问题吗?
这是不可能的" call
10000 on daily object
"只是因为10000
不是一个有效的标识符。
让我解释一下这里发生了什么:
JSON
解析器生成一些运行时类型,继承自一些基本JSON
类型(例如JsonObject
)。所以,obj
是某种生成的类型,你对它调用属性item
,它返回类似的生成类型,然后你调用today
属性,等等。
最后一步很奇怪,在任何类型上都不能有10000
属性,无论是否生成
但是,如果库支持对对象的键值访问,您可以尝试写
obj.daily["10000"]
或将obj转换为JObject(假设您正在使用JSON.NET)并调用属性方法:
var jsonObject = (JObject) obj;
var propertyValue = jsonObject.Property("10000").Value;
如果您使用Json。净
string json = "{ dayly : { 1000 : 'asd' } }";
dynamic d = JsonConvert.DeserializeObject(json);
Console.WriteLine((d.dayly as JObject).Property("1000").Value);