获取数组JSON.Net的长度

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

我得到的json的例子:

{"JSONObject": [ {"Id":"ThisIsMyId","Value":"ThisIsMyValue"}, {"Id":"ThisIsMyId2","Value":"ThisIsMyValue2"} ]} 

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

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

这就像一个咒语,只是我不知道JSONObject的长度,但我需要在for循环中进行。 我只是不知道如何获得test["JSONObject"]的长度test["JSONObject"]

但是像test["JSONObject"].Length类的东西test["JSONObject"].Length太容易我想:( ..

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

 JArray items = (JArray)test["JSONObject"]; int length = items.Count; 

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

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

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

 int length = test["JSONObject"].Count(); 

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

您可以使用以下行来获取.Net( JArray )中JSON数组的长度。

  int length = ((JArray)test["jsonObject"]).Count;