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