如何在不使用foreach循环的情况下获得JObject的第一个子节点

时间:2015-01-16 19:15:35

标签: c# json json.net

我需要得到JObject的第一个孩子。 这是我在第一次迭代后使用foreach循环中断暂时解决它的方法。

foreach (KeyValuePair<string, JToken> item in (JObject)json["stats"])
{
    // doing something with item
    break;
}

我想知道是否有更短的解决方案,例如json["stats"][0](但它不会以这种方式工作)。

3 个答案:

答案 0 :(得分:3)

可能有几种方法,但这里有一种:

JToken prop = obj["stats"].First;

如果你知道它是JProperty

JProperty prop = obj["stats"].First.ToObject<JProperty>();

答案 1 :(得分:2)

由于JObject实现IDicionary<string, JToken>,您可以使用Linq扩展方法。

 IDictionary<string, JToken> json = new JObject();
 var item = json.First();

答案 2 :(得分:1)

这不会起作用吗?

(json["stats"] as JObject).Select(x =>
      {
            // do something with the item;

            return x;
      }).FirstOrDefault();