DelphiJson - 如何访问多维数组?

时间:2014-09-03 12:10:37

标签: json delphi multidimensional-array

我使用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数据中的嵌套数组值?

1 个答案:

答案 0 :(得分:0)

JSON不支持多维数组。它有标量,数组和字典。

您认为多维数组是一个包含元素的数组,而该元素又是一个数组。

因此,如果您知道如何处理数组,则可以简单地递归地应用该知识。迭代外部数组。然后对于作为数组的每个元素,迭代该内部数组。