您在上面发布的代码不正确。您已经创建了一个 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"}
]
}