我需要得到JObject
的第一个孩子。这就是我在第一次迭代后使用 foreach 循环中断暂时解决它的方式。
foreach (KeyValuePair<string, JToken> item in (JObject)json["stats"])
{
// doing something with item
break;
}
我想知道是否有更短的解决方案,例如json["stats"][0]
(但是它不是这样工作的)。
可能有几种方法,但这里有一种:
JToken prop = obj["stats"].First;
如果你知道这是一个JProperty
:
JProperty prop = obj["stats"].First.ToObject<JProperty>();
由于JObject
实现了IDicionary<string, JToken>
因此可以使用Linq扩展方法。
IDictionary<string, JToken> json = new JObject();
var item = json.First();
这
行不通吗?
(json["stats"] as JObject).Select(x =>
{
// do something with the item;
return x;
}).FirstOrDefault();