2013-09-26 23 views
22

Wie kann ich die Länge eines JSON-Array bekommen, die ich mit json.net in C# bekomme? Nach dem Senden eines SOAP-Aufrufs erhalte ich eine JSON-Zeichenfolge als Antwort, die ich mit json.net analysiere.Get Länge des Arrays JSON.Net

Beispiel für die json Ich habe:

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

Und ich analysieren es und es in der Konsole schreiben:

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

Das ist wie ein Zauber funktioniert, nur weiß ich nicht, die Länge das JSONObject, aber ich muss es in einer for-Schleife tun. Ich habe nur keine Ahnung, wie ich die Länge von „Test erhalten kann [“ JSONObject „]“

Aber so etwas wie Test [ „JSONObject“]. Länge zu einfach wäre, ich denke :(..

Antwort

39

Sie werfen kann das Objekt mit einem JArray und verwenden Sie dann die Count Eigenschaft, etwa so:

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

Sie können dann Schleife, um die Funktionen wie folgt:

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

Nach Onno (OP), können Sie auch die folgenden verwenden:

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

Allerdings habe ich nicht persönlich bestätigt, dass dies

+0

arbeiten Sie nicht auf 'JArray' werfen müssen für Das? – svick

+0

Ich habe das versucht, als ich das woanders gesehen habe. Aber manchmal habe ich Count() nicht versucht, was zu funktionieren scheint. Es tut mir sehr leid für meine Dummheit: O – Onno

+0

@Onno: Sagst du, dass 'Count()' funktioniert? Wenn ja, kann ich die Antwort aktualisieren – musefan

Verwandte Themen