检查 JToken 是否为空数组

cro*_*ill 1 c# asp.net

在收到来自 API 的响应后,我有以下内容:

JObject goatHerd = JObject.Parse(responseString);
JToken goat = goatHerd["value"];
Run Code Online (Sandbox Code Playgroud)

现在goat将包含一个数据数组,或者它将是一个空数组。如何检查是否为空?

我试过这样的事情:

if(goat != null){}
Run Code Online (Sandbox Code Playgroud)

不幸的是,goat实际上等于{[]}根据 Visual Studio。

我不能这样做:

if(goat.length != 0){}
Run Code Online (Sandbox Code Playgroud)

因为.length不适用于JToken.

谢谢你的帮助。

Dav*_*d L 7

您可以使用HasValues属性:

if (goat.HasValues) {}
Run Code Online (Sandbox Code Playgroud)

此外,JToken支持 LINQ 操作,因此您也可以使用Any().

if (goat.Any()) {}
Run Code Online (Sandbox Code Playgroud)