我有一个动态数组包含JSON响应,我试图改变或添加新的孩子,但它一直给我这个错误:
其他信息:' System.Dynamic.DynamicObject'不包含' vault_data'
的定义
这是我的代码:
dynamic user = getData(apiKey); //return a dynamic JSON array .. vault_data contains a string
user.vault_data = "Trying to alter this child"; // here occur the error when I try to alter the child
user.data = "Trying to add new child"; // this will through the same error
图像:
答案 0 :(得分:1)
我认为解决此问题的最佳方法是,如果您可以在发生错误之前在运行时进行调试,以查看动态user
的类型分配是什么。此信息对于确定如何提取所需数据非常有用。
但是,至少从图片中我们可以看到user
是一个数组,您应该首先使用数字索引 user[46]
来访问它,然后才可以访问其成员(包含vault_data
)。
之后
KeyValuePair
为关键字的"vault_data"
(KVP),则应尝试以密钥形式user[46]["vault_data"]
提供第二个索引来访问该值。 user[46].vault_data
。 user[46][1]
的第二个索引来访问它(user[46][0]
是vault_data
,因此{{ 1}}是您想要更改的值。user[46][1]
,那么您需要进一步解析string
在所有可能性中,关键是首先通过索引 user[46]
数组来访问该成员。