我正在使用 Json 动态对象

这是我用来从对象中获取数据的方法:

string = obj.item.today.price;

这很好用,问题是一旦我必须开始使用数字示例:
string = obj.daily.10000;

它给了我一个错误

有没有什么办法解决这一问题?

最佳答案

call 10000 on daily object”不可能仅仅因为 10000 不是有效的 identifier

让我解释一下这里发生了什么:
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;

关于C# Json 动态对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16165261/

10-11 22:48
查看更多