2012-12-14 55 views
4

我正在使用Newtonsoft.Json来解析Json文本。出于某种原因,我需要JToken或Jvalue对象的名称。根据示例,如果“ChoiceId”:865是JValue,那么我需要得到“ChoiceId”。但我现在试了几个小时,但无法弄清楚。我怎样才能得到这个名字?如何获取JValue对象的名称

感谢

例: 如果这是JSON文件内容:

{"ChoiceId":868,"Choice":"Post","Url":"/pst/goods"} 

然后,我可以用

JObject json = JObject.Parse(hole); 
JValue jvalue = (Jvalue)json["ChoiceId"]; 
string value = jvalue.Value; 

得到ChoiceId价值,但没有物业用于获取名称即“ChoiceId”。所以我的问题是,我怎么能得到它?

+1

你可以添加一些你的代码的问题? – user7116

回答

6

因为我没有看到任何代码,所以我是spitballing,也许你正在寻找JToken.Parent and JProperty

// Assumes token is JToken, search for the owning JProperty 
var parentProperty = token.Ancestors<JProperty>() 
          .FirstOrDefault(); 

// alternatively, if you know it'll be a property: 
var parentProperty = ((JProperty)token.Parent); 

var name = parentProperty.Name;