C# Json 动态对象

标签 c# json object dynamic

我正在使用一个Json 动态对象

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

string = obj.item.today.price;

这工作正常,问题是一旦我必须开始使用数字示例:

string = obj.daily.10000;

它给我一个错误

有什么办法可以解决这个问题吗?

最佳答案

仅仅因为 10000 不是有效的 identifier,“调用 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;

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

相关文章:

c# - 将多个 CSS 类添加到富文本编辑器 Sitecore 8

c# - 将 MyDbContext 合并到 Asp.net IdentityDbContext

php - 来自 steamcommunity JSON 上的 PHP file_get_contents 的 JQuery $.getJSON

javascript - 在对象的子数组中搜索 - JavaScript

javascript - 如何将逻辑/数学运算符分配给对象的函数?

c# - 使用非默认权限将文件上传到 Amazon S3

c# - 如何将字符串转换为 OctetString (C#)?

javascript - 如何迭代这个散列?

json - 从 Postman 中的对象数组中提取值

Javascript:对象数组的复杂排序(帖子中的示例和预期结果)