uses TSuperObject;
var
ReqJson,ReqUser,ReqEvent,NurseArray,EventRootsArray ,jfields:ISuperObject;
begin
//声明类型
ReqJson :=SO();
ReqUser:=SO();
ReqEvent:=SO();
NurseArray:=SA([]);
EventRootsArray:=SA([]);
for i:= 0 to 10 do
begin
NurseList[i] :=SO();
EventRootList[i] :=SO();
end;
//查询数据库
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add(' select ');
open;
if not (eof and bof) then
begin
for j:= 0 to recordcount-1 do
begin
//赋值给json
ReqUser.s['userName']:='zz';
ReqUser.s['password']:='123456';
ReqEvent.S['deptTypeName']:=fieldbyname('deptTypeName').asstring;
ReqEvent.S['applyDeptMemo']:=fieldbyname('applyDeptMemo').asstring;
ReqEvent.S['fallReason']:=fieldbyname('fallReason').asstring;
ReqJson.O['User'] := ReqUser;
ReqJson.O['Event'] := ReqEvent;
//查询子表的值
with adoquery2 do
begin
close;
sql.clear;
sql.add(' select * from this_hl_ddzc_dsr where brdlsh0='''+adoquery1.fieldbyname('lsh0000').AsString+''' ' );
open;
if not (eof and bof) then
begin
for i:= 0 to recordcount-1 do
begin
//赋值给JSON子表的内容
NurseList[i].s['age'] := fieldbyname('age').asstring;
NurseList[i].s['duty'] := fieldbyname('zc').asstring;
NurseList[i].s['workYear'] := fieldbyname('gznx').asstring;
NurseList[i].s['inDeptYear'] := fieldbyname('fwnx').asstring;
// ******关键 将json的值循环假如到数组中
NurseArray.AsArray.Add(NurseList[i]);
next;
end;
end;
end;
//将数组的内容,赋值给JSON的节点内
ReqJson.O['NurseList'] := NurseArray;
with adoquery2 do
begin
close;
sql.clear;
sql.add(' select * from this_hl_ddzc_sjgy where brdlsh0='''+adoquery1.fieldbyname('lsh0000').AsString+''' ' );
open;
if not (eof and bof) then
begin
for i:= 0 to recordcount-1 do
begin
//第二个循环节点数组
EventRootList[i].s['rootOne'] := fieldbyname('yjgymc').asstring;
EventRootList[i].s['rootTwo'] := fieldbyname('ejgymc').asstring;
EventRootList[i].s['rootThree'] := fieldbyname('sjgymc').asstring;
EventRootList[i].s['isQt'] := fieldbyname('sfqt').asstring;
EventRootList[i].s['otherInfo'] := fieldbyname('qtxx').asstring;
EventRootList[i].s['rootLevel'] := fieldbyname('gycj').asstring;
//将循环节点的JSON赋值到JSON节点中
EventRootsArray.AsArray.Add(EventRootList[i]);
next;
end;
end;
end;
ReqJson.O['EventRootList'] := EventRootsArray;
showmessage(ReqJson.AsString);
end;
end;
end;