我正在使用 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)并调用Property方法:
var jsonObject = (JObject) obj;
var propertyValue = jsonObject.Property("10000").Value;
如果你使用 Json.NET
string json = "{ dayly : { 1000 : 'asd' } }";
dynamic d = JsonConvert.DeserializeObject(json);
Console.WriteLine((d.dayly as JObject).Property("1000").Value);