uses superobject;
procedure SaveJson;
var
json, json_sub: ISuperObject;
begin
json := SO;
json.S['name'] := 'Henri Gourvest';
json.B['vip'] := TRUE;
json.O['telephones'] := SA([]);
json.A['telephones'].S[0] := '000000000';
json.A['telephones'].S[1] := '111111111111';
json.I['age'] := 33;
json.D['size'] := 1.83;
json.O['addresses'] := SA([]);
json_sub := SO;
json_sub.S['address'] := 'blabla';
json_sub.S['city'] := 'Metz';
json_sub.I['pc'] := 57000;
json.A['addresses'].Add(json_sub);
json_sub.S['address'] := 'blabla';
json_sub.S['city'] := 'Nantes';
json_sub.I['pc'] := 44000;
json.A['addresses'].Add(json_sub);
json.SaveTo('C:\json_out.txt');
json := nil;
json_sub := nil;
end;
procedure TForm2.btn1Click(Sender: TObject);
var aJson: ISuperObject;
aSuperArray: TSuperArray;
i:Integer;
begin
{1、赋初值} aJson:=SO('{"zoo":"涂磊动物园","animals":[{"name":"猴子","year":"12"},{"name":"老虎","year":"132"}]}');
{2、读值前,一定要先判断是否存在} if aJson['animals']<> nil then
mmo1.Lines.Add( aJson['animals'].AsString );
{3、多值的读取} aSuperArray:= aJson['animals'].AsArray;
//多值 "animals":[{"name":"猴子","year":"12"},
// {"name":"老虎","year":"132"}]
for i:=0 to aSuperArray.Length-1 do
mmo1.Lines.Add(aSuperArray[i]['name'].AsString+aSuperArray[i]['year'].AsString);
aJson:=SO('{"code":0,"data":{"area":"华东","area_id":"300000","city":"宜春市","city_id":"360900","country":"中国","country_id":"CN","county":"","county_id":"","ip":"59.62.201.110","isp":"电信","isp_id":"100017","region":"江西省","region_id":"360000"}}');
{4、深层级的访问} if aJson['data.country']<> nil then
mmo1.Lines.Add( aJson['data.country'].AsString ); // 中国
SaveJson();
end;
procedure SaveJson;
var
json, json_sub: ISuperObject;
begin
json := SO;
json.S['name'] := 'Henri Gourvest';
json.B['vip'] := TRUE;
json.O['telephones'] := SA([]);
json.A['telephones'].S[0] := '000000000';
json.A['telephones'].S[1] := '111111111111';
json.I['age'] := 33;
json.D['size'] := 1.83;
json.O['addresses'] := SA([]);
json_sub := SO;
json_sub.S['address'] := 'blabla';
json_sub.S['city'] := 'Metz';
json_sub.I['pc'] := 57000;
json.A['addresses'].Add(json_sub);
json_sub.S['address'] := 'blabla';
json_sub.S['city'] := 'Nantes';
json_sub.I['pc'] := 44000;
json.A['addresses'].Add(json_sub);
json.SaveTo('C:\json_out.txt');
json := nil;
json_sub := nil;
end;
procedure TForm2.btn1Click(Sender: TObject);
var aJson: ISuperObject;
aSuperArray: TSuperArray;
i:Integer;
begin
{1、赋初值} aJson:=SO('{"zoo":"涂磊动物园","animals":[{"name":"猴子","year":"12"},{"name":"老虎","year":"132"}]}');
{2、读值前,一定要先判断是否存在} if aJson['animals']<> nil then
mmo1.Lines.Add( aJson['animals'].AsString );
{3、多值的读取} aSuperArray:= aJson['animals'].AsArray;
//多值 "animals":[{"name":"猴子","year":"12"},
// {"name":"老虎","year":"132"}]
for i:=0 to aSuperArray.Length-1 do
mmo1.Lines.Add(aSuperArray[i]['name'].AsString+aSuperArray[i]['year'].AsString);
aJson:=SO('{"code":0,"data":{"area":"华东","area_id":"300000","city":"宜春市","city_id":"360900","country":"中国","country_id":"CN","county":"","county_id":"","ip":"59.62.201.110","isp":"电信","isp_id":"100017","region":"江西省","region_id":"360000"}}');
{4、深层级的访问} if aJson['data.country']<> nil then
mmo1.Lines.Add( aJson['data.country'].AsString ); // 中国
SaveJson();
end;