我怎样才能从Json.NET获得密钥列表?

我正在使用C#和Json.NET。 如果我有一个JObject,我想要一个对象内的键列表,类似于object.Keys()如何返回对象内的键。 这似乎是显而易见的,但我有一个艰难的时间find一种方法来做到这一点。

编辑:我遍历的对象,我想吐出当我通过对象的所有键。 我意识到这个例子会导致多次看到相同的密钥,这对我的需求是可以的。

 public void SomeMethod(JObject parent) { foreach (JObject child in parent.Children()) { if (child.HasValues) { // // Code to get the keys here // SomeMethod(child); } } } 
 IList<string> keys = parent.Properties().Select(p => p.Name).ToList(); 

文档: JObject.Properties

从一个JSON.NET JObject的属性/标记转换成字典键

您可以简单地将JObject转换为Dictionary对象,然后从Dictionary对象中访问方法Keys()

喜欢这个:

 using Newtonsoft.Json.Linq; //jsonString is your JSON-formatted string JObject jsonObj = JObject.Parse(jsonString); Dictionary<string, string> dictObj = jsonObj.ToObject<Dictionary<string, string>>(); 

您现在可以通过dictObj.Keys()方法访问这些键。 您也可以通过执行dictObj.ContainsKey(keyName)来查看是否存在某个键。

显然,你可以格式化字典,但是你想要的(可以是Dictionary<string, object>等)。