7

サーバーから次の JSON があります。

{
   "userid":"12",
   "username":"TestChar",
   "logged":"yes",
   "status":"Premium User",
   "areas":{
      "SERVICEAREA_XX1":{
         "id":"1",
         "area":"SERVICEAREA_XX1",
         "version":"3000",
         "usr_group":"0"
      },
      "SERVICEAREA_XX2":{
         "id":"2",
         "area":"SERVICEAREA_XX2",
         "version":"31000",
         "usr_group":"0"
      },
      "SERVICEAREA_XX3":{
         "id":"3",
         "area":"SERVICEAREA_XX3",
         "version":"2000",
         "usr_group":"1"
      }
   }
}

SuperObjectsを使用すると、「SERVICEAREA」の数を取得できます

ob['areas'].AsObject.count

さまざまな「SERVICEAREA」の要素にアクセスするにはどうすればよいですか?

ご協力いただきありがとうございます...

4

3 に答える 3

11

for ... inループを使用して配列の要素にアクセスできます。

var
  item: ISuperObject;
begin
  for item in ob['areas'] do ...

または列挙子なしで、「通常の」for ループを使用します。

var
  idx: Integer;
  item: ISuperObject;
begin
  for idx := 0 to ob['areas'].AsArray.Length - 1 do
    item := ob['areas'].AsArray[idx];
于 2012-10-02T05:54:36.227 に答える
9

Marjan が答えを教えてくれます。例を使用して、アイテムのプロパティにアクセスする方法についてもう少し詳しく説明します。

var
  item: ISuperObject;
...
for item in ob['areas'] do
begin
  WriteLn(item['id'].AsInteger);
  WriteLn(item['area'].AsString);
  WriteLn(item['version'].AsInteger);
end;
于 2012-10-02T16:08:46.813 に答える