我有一个JObject类,成员是动态的,但是当成员名称存储在变量中时,我不知道如何访问动态成员。
代码如下。
dynamic deserializedProduct = JObject.Parse(json);
string[] user = emailBox.Text.Split('@');
string pass = deserializedProduct.user[0].password;
MessageBox.Show(pass);
// User[0] represents the member name
非常感谢任何帮助。
答案 0 :(得分:0)
如果它是动态的,你应该可以像访问它一样来访问它
deserializedProduct .user
但我想你需要var用户里面的值。
在这种情况下,西风有很多实用工具可以扩展Expando对象。
检查 http://weblog.west-wind.com/posts/2012/Feb/08/Creating-a-dynamic-extensible-C-Expando-Object
答案 1 :(得分:0)
正如@Adriano在评论中所提到的,JObject
有字符串索引器。它更适合使用该索引器,而不是在公共对象属性名称样式中执行此操作:
........
string pass = ((dynamic)deserializedProduct[user[0]]).password;
//or full string indexer style
//string pass = deserializedProduct[user[0]]["password"];
MessageBox.Show(pass);