获取数组JSON.Net的长度

Onn*_*nno 36 c# json json.net xamarin

如何获得我在C#中使用json.net获得的JSON数组的长度?发送SOAP调用后,我得到一个JSON字符串作为答案,我使用json.net来解析它.

我得到的json的例子:

{"JSONObject": [
    {"Id":"ThisIsMyId","Value":"ThisIsMyValue"},
    {"Id":"ThisIsMyId2","Value":"ThisIsMyValue2"}
]}
Run Code Online (Sandbox Code Playgroud)

我解析它并在控制台中写入:

var test = JObject.Parse (json);
Console.WriteLine ("Id: {0} Value: {1}", (string)test["JSONObject"][0]["Id"], (string)test["JSONObject"][0]["Value"]);
Run Code Online (Sandbox Code Playgroud)

这就像一个咒语一样,只是我不知道它的长度JSONObject,但我需要在for循环中进行.我只是不知道我怎么能得到它的长度test["JSONObject"]

但是我觉得这样的事情test["JSONObject"].Length太容易了:( ..

mus*_*fan 64

您可以将对象强制转换为a JArray然后使用该Count属性,如下所示:

JArray items = (JArray)test["JSONObject"];
int length = items.Count;
Run Code Online (Sandbox Code Playgroud)

然后,您可以按如下方式循环项目:

for (int i = 0; i < items.Count; i++)
{
    var item = (JObject)items[i];
    //do something with item
}
Run Code Online (Sandbox Code Playgroud)

根据Onno(OP),您还可以使用以下内容:

int length = test["JSONObject"].Count();
Run Code Online (Sandbox Code Playgroud)

但是,我没有亲自确认这会起作用