/ / DelphiJson - Wie kann ich auf ein mehrdimensionales Array zugreifen? - JSON, Delphi, multidimensionales Array

DelphiJson - Wie kann ich auf mehrdimensionale Arrays zugreifen? - JSON, Delphi, multidimensionales Array

Ich verwende das https://code.google.com/p/delphijson/ Projekte zum Parsen von JSON. Es funktioniert ziemlich gut, aber ich kann nicht auf den Wert eines mehrdimensionalen Arrays zugreifen.

Ich habe diese JSON-Daten:

{"B":[{"IDS":0,"WID":1,"W":15,"D":1,"SPRITE":14,"EQ":[[98,1,1,3,3,[[9,2106],[1,1720],[4,7326]],-1,-1,0,-1,-1],[99,2,1,3,4,[[4,2204],[11,7011],[7,701]],-1,-1,5,-1,-1],[1010,3,1,3,1,[[10,221],[2,3],[11,7122]],-1,-1,0,-1,-1],[101,4,1,3,2,[[11,221],[11,724],[4,717]],-1,-1,0,-1,-1]],"GUM":[],"PIS":0,"CID":2,"N":""}]}

Ich erstelle ein JSONObject:

var
j,jj: TJSONObject;
x: Integer;
s: String;
begin
// Create a new JSON object from a JSON string
j := JSONObjectFromJSON(TFile.ReadAllText("data.txt"));
x := j.B.Count; // Get count of B
s := j.B[0].Wid; // Access WID from first B-item
end;

Wie kann ich auf den Wert vom EQ-Array zugreifen? Z.B. Werte 98,1,1,3 und verschachtelte Array-Werte aus den Beispiel-JSON-Daten?

Antworten:

0 für die Antwort № 1

JSON unterstützt keine mehrdimensionalen Arrays. Es hat Skalare, Arrays und Wörterbücher.

Was Sie von einem mehrdimensionalen Array halten, ist ein Array, das ein Element enthält, das wiederum ein Array ist.

Wenn Sie also mit Arrays umgehen können, können Sie dieses Wissen einfach rekursiv anwenden. Iteriere über das äußere Array. Und dann für jedes Element, das ein Array ist, über dieses innere Array iterieren.