Аз използвам https://code.google.com/p/delphijson/ проекти за разглеждане на JSON. Работи доста добре, но не мога да получа достъп до стойността на многомерния масив.
Имам тези данни от JSON:
{"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":""}]}
Създавам 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;
Как мога да получа достъп до стойността от масив EQ? Напр. Стойности 98,1,1,3 и също вложени стойности на масивите от примерните JSON данни?
Отговори:
0 за отговор № 1JSON няма поддръжка за многомерни масиви. Има скалари, масиви и речници.
Това, което мислите като многоизмерен масив, е масив, който съдържа елемент, който от своя страна е масив.
Така че, ако знаете как да се справяте с масиви, можете просто да приложите тези знания рекурсивно. Повторете над външния масив. И тогава за всеки елемент, който е масив, итерете над този вътрешен масив.