C# 如何获取JValue对象的名称

C# 如何获取JValue对象的名称,c#,json,json.net,C#,Json,Json.net,我正在使用Newtonsoft.Json解析Json文本。出于某种原因,我需要JToken或Jvalue对象的名称。例如,如果“ChoiceId”:865是JValue,那么我需要获得“ChoiceId”。但我现在尝试了几个小时,但不知道怎么做。我怎样才能得到那个名字 谢谢 例如: 如果这是json文件内容: {"ChoiceId":868,"Choice":"Post","Url":"/pst/goods"} 然后我可以使用 JObject json = JObject.Parse(hole

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

谢谢

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

{"ChoiceId":868,"Choice":"Post","Url":"/pst/goods"}
然后我可以使用

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

但是没有属性可以获得名称,即“ChoiceId”。所以我的问题是,我怎样才能得到它呢?

因为我没有看到你的代码,所以我在吐痰,也许你在寻找

//假设令牌是JToken,搜索拥有的JProperty
var parentProperty=token.祖先()
.FirstOrDefault();
//或者,如果您知道这将是一个财产:
var parentProperty=((JProperty)token.Parent);
var name=parentProperty.name;

您能在问题中添加一些代码吗?
// 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;