【发布时间】:2014-10-15 08:59:08
【问题描述】:
在服务器上,我得到 JSON 对象。我使用 JsonConvert 将它们反序列化为匿名对象。然后我想访问成员,但我不能这样做:
object a = jsonObj.something.something.else;
所以我创建了以下内容,目的是能够使用选择器字符串数组访问成员。但是,这里的 getProperty() 总是返回 null。有什么想法吗?
private object recGetProperty(object currentNode, string[] selectors, int index) {
try {
Type nodeType = currentNode.GetType();
object nextNode = nodeType.GetProperty(selectors[index]);
if (index == (selectors.Length - 1)) {
return nextNode;
}
else {
return recGetProperty(nextNode, selectors, index + 1);
}
}
catch (Exception e) {
return null;
}
}
private object getProperty(object root, string[] selectors) {
return recGetProperty(root, selectors, 0);
}
【问题讨论】:
-
but you can't do something like:...为什么?你试过用dynamic关键字吗? -
你可以用动态。看this post
-
我是 C# 新手。我还没听说过这个。我会调查的。
-
动态允许“.”符号访问,但这可以用于使用一系列字符串进行访问吗?字符串索引似乎不适用于动态类型对象。
标签: c# asp.net json recursion anonymous-types