我如何通过JObject枚举?

我试图确定如何访问我的JObject中的数据,而我无法决定如何使用它。

JObject Object = (JObject)Response.Data["my_key"]; 

我可以将它打印到Console.WriteLine(Object)的控制台上,然后看到数据,如下所示:

 { "my_data" : "more of my string data" ... } 

但我不知道如何迭代/枚举,任何人有任何想法? 我现在处于这样的状态。

如果您查看JObject的文档 ,您将看到它实现了IEnumerable<KeyValuePair<string, JToken>> 。 所以,你可以简单地使用foreach来迭代它:

 foreach (var x in obj) { string name = x.Key; JToken value = x.Value; … } 

可以通过JProperty对象枚举JObjects并将其转换为JToken :

 foreach ( JProperty x in (JToken)obj) { // if 'obj' is a JObject string name = x.Name; JToken value = x.Value; } 

如果在另一个JObject内部有嵌套的JObject,则不需要进行转换,因为存取器将返回一个JToken:

 foreach (JProperty x in obj["otherObject"]) { // Where 'obj' and 'obj["otherObject"]' are both JObjects string name = x.Name; JToken value = x.Value; } 

答案不适合我。 我不知道它是如何得到这么多票。 虽然这有助于指引我的方向。

这是对我有用的答案:

 foreach (var x in jobj) { var key = ((JProperty) (x)).Name; var jvalue = ((JProperty)(x)).Value ; }