我使用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 :(得分:0)
JSON不支持多维数组。它有标量,数组和字典。
您认为多维数组是一个包含元素的数组,而该元素又是一个数组。
因此,如果您知道如何处理数组,则可以简单地递归地应用该知识。迭代外部数组。然后对于作为数组的每个元素,迭代该内部数组。