4

我正在使用 Json 动态对象

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

string = obj.item.today.price;

这很好用,问题是一旦我必须开始使用数字示例:

string = obj.daily.10000;

它给了我一个错误

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

4

2 回答 2

3

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;
于 2013-04-23T09:11:57.213 回答
1

如果你使用 Json.NET

string json = "{ dayly : { 1000 : 'asd' } }";
dynamic d = JsonConvert.DeserializeObject(json);
Console.WriteLine((d.dayly as JObject).Property("1000").Value);
于 2013-04-23T09:17:10.307 回答