上記で投稿したコードは正しくありません。JSON配列を作成し、その配列にペア要素を追加しようとしています。ただし、配列にペアを追加する代わりに、JSON Objects
この配列に追加する必要があり、これらのオブジェクトにはペアが含まれている必要があります。
問題を解決するためのサンプルコードは次のとおりです。
program Project3;
{$APPTYPE CONSOLE}
uses
SysUtils, dbxjson;
var jsobj, jso : TJsonObject;
jsa : TJsonArray;
jsp : TJsonPair;
begin
try
//create top-level object
jsObj := TJsonObject.Create();
//create an json-array
jsa := TJsonArray.Create();
//add array to object
jsp := TJSONPair.Create('Array', jsa);
jsObj.AddPair(jsp);
//add items to the _first_ elemet of array
jso := TJsonObject.Create();
//add object pairs
jso.AddPair(TJsonPair.Create('1', '1_1'));
jso.AddPair(TJsonPair.Create('1_2_1', '1_2_2'));
//put it into array
jsa.AddElement(jso);
//second element
jso := TJsonObject.Create();
//add object pairs
jso.AddPair(TJsonPair.Create('x', 'x_x'));
jso.AddPair(TJsonPair.Create('x_y_x', 'x_y_y'));
//put it into array
jsa.AddElement(jso);
writeln(jsObj.ToString);
readln;
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
end.
出力は
{"Array":[
{"1":"1_1","1_2_1":"1_2_2"},
{"x":"x_x","x_y_x":"x_y_y"}
]
}