5

我正在使用 Newtonsoft.Json 来解析 Json 文本。出于某种原因,我需要 JToken 或 Jvalue 对象的名称。例如,如果"ChoiceId":865是 JValue,那么我需要获取"ChoiceId"。但我现在尝试了几个小时,但不知道怎么做。我怎样才能得到那个名字?

谢谢

示例:如果这是 json 文件内容:

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

然后我可以通过使用获取 ChoiceId 值

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

但是没有属性可以获取名称 ie."ChoiceId" 。所以我的问题是我怎样才能得到它?

4

1 回答 1

8

由于我没有看到您的任何代码,因此我在吐槽,也许您正在寻找JToken.ParentandJProperty

// 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;
于 2012-12-14T23:03:44.753 回答