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 :( ..
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
Vous pouvez utiliser la ligne ci-dessous pour obtenir la longueur du tableau JSON en .Net (JArray
).
int length = ((JArray)test["jsonObject"]).Count;