it-swarm.com.de

Hole Länge des Arrays JSON.Net

Wie bekomme ich die Länge eines JSON-Arrays, das ich mit json.net in C # bekomme? Nach dem Senden eines SOAP - Aufrufs bekomme ich einen JSON-String als Antwort. Ich analysiere ihn mit json.net.

Beispiel für den Json, den ich bekam:

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

Und ich analysiere es und schreibe es in die Konsole:

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

Dies funktioniert wie ein Zauber, nur ich kenne die Länge von JSONObject nicht, aber ich muss es in einer for-Schleife tun. Ich habe nur keine Ahnung, wie ich die Länge von test["JSONObject"] bekommen kann.

Aber so etwas wie test["JSONObject"].Length wäre zu einfach, denke ich :( ..

31
Onno

Sie können das Objekt in eine JArray umwandeln und dann die Count-Eigenschaft verwenden, wie folgt:

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

Sie können die Elemente dann wie folgt schleifen:

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

Laut Onno (OP) können Sie auch Folgendes verwenden:

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

Ich habe jedoch nicht persönlich bestätigt, dass dies funktionieren wird

58
musefan

Unter der Zeile können Sie die Länge des JSON-Arrays in .Net (JArray) ermitteln.

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

Probieren Sie einfach Folgendes aus:

var test= ((Newtonsoft.Json.Linq.JArray)json).Count;
0
arul pushpam