最近、ULKJsonの使用からSuperObjectと私は、パッケージに付属しているサンプルを見て回っていますが、ほとんどの点で前進していますが、思わぬ障害に遭遇したようです。より具体的には、以下の例のような配列内の項目にアクセスする方法を示す例を見つけることができないようです。
{
"name": "John Smith",
"tel": 555-5555,
"age": 18,
"height": 1.8,
"place": [{"address": "PO Box 1234", "city": "Florida", "code": 2000},
{"address": "1 Sparrow street", "city": "Florida", "code": 2000}]
}
通常のアイテムにアクセスするには、次のコードを使用しますが、うまくいくようです。
procedure TForm1.Button1Click(Sender: TObject);
var
SO : ISuperObject;
age, height, tel : Integer;
name : String;
begin
SO := TSuperObject.ParseFile("JSON.txt",true);
name := SO.S["name"];
age := SO.I["age"];
tel := SO.I["tel"];
height := SO.I["height"];
Memo1.Lines.Clear;
Memo1.Lines.Add("Name: " + name);
Memo1.Lines.Add(#10#13);
Memo1.Lines.Add("Age: " + age);
Memo1.Lines.Add(#10#13);
Memo1.Lines.Add("Telephone: " + tel);
Memo1.Lines.Add(#10#13);
Memo1.Lines.Add("Height: " + height);
Memo1.Lines.Add(#10#13);
end;
ただし、アイテムのアクセス方法がわからない 場所 配列と私はちょうど見落としていると確信しています簡単なものですが、このデータにアクセスする方法を示したデモで例を見つけることができず、ここの教祖の1人が何らかの支援を提供できるか、少なくとも自分から学ぶことができるガイドを私に教えてくれることを望んでいました。
回答:
回答№1は6私がそれを行う方法は、単純に次のようになります。
var
location:ISuperObject;
begin
for location in SO["place"] do
Memo1.Lines.Add(location.S["address"]); //etc.
end;
end;
TLamaが示唆したように、短いガイドは本当に学ぶべき素晴らしい情報源です。