2012-12-14 153 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;