web-dev-qa-db-fra.com

Obtenir la longueur du tableau JSON.Net

Comment puis-je obtenir la longueur d'un tableau JSON obtenu avec json.net en C #? Après l'envoi d'un appel SOAP, je reçois une chaîne JSON comme réponse, j'utilise json.net pour l'analyse.

Exemple du JSON que j'ai eu:

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

Et je l'analyse et l'écris dans la console:

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

Cela fonctionne comme un sort, mais je ne connais pas la longueur de JSONObject, mais je dois le faire dans une boucle for. Je n'ai aucune idée de la façon dont je peux obtenir la longueur de test["JSONObject"]

Mais quelque chose comme test["JSONObject"].Length serait trop facile, je suppose :( ..

31
Onno

Vous pouvez convertir l'objet en JArray, puis utiliser la propriété Count, comme suit:

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

Vous pouvez ensuite mettre en boucle les éléments comme suit:

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

Selon Onno (OP), vous pouvez également utiliser les éléments suivants:

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

Cependant, je n'ai pas personnellement confirmé que cela fonctionnerait

58
musefan

Vous pouvez utiliser la ligne ci-dessous pour obtenir la longueur du tableau JSON en .Net (JArray).

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