使用 XSuperJSON 将数据转成内存表 使用
我们从请求返回的JSON数组对象 ISuperArray 转换到FDM中 然后连接到DataSet显示即可
(*
json 数据转换 内存表
icy
*)
function JsonToDataSet2(JAry: ISuperArray; MDB: TFDMemTable):Boolean;
begin
Result:= True;
try
JSONToDataSet(jAry,MDB);
MDB.Post;
except
Result:= False;
end;
end;
以上这个在内存表添加了字段后即可展示
下面给出自动生成字段的
(*
内存表自动转换
只认 整形和 字符串 浮点和日期的json一律以字符串展示
icy
*)
function JsonToFDMDataSet(JAry: ISuperArray; MDB: TFDMemTable):Boolean;
var
JO: ISuperObject;
K: string;
begin
Result:= JAry.Length > 0;
if Result then
begin
JO:= JAry.O[0];
MDB.Close;
if MDB.FieldDefs.Count > 0 then
MDB.FieldDefs.Clear;
while not JO.EoF do
begin
K:= JO.CurrentKey;
if JO.CurrentValue.DataType = dtInteger then
MDB.FieldDefs.Add(K, ftInteger, 0, False)
else
if JO.CurrentValue.DataType = dtFloat then
MDB.FieldDefs.Add(K,ftFloat,0,False)
else
MDB.FieldDefs.Add(K, ftString, 30, False);
JO.Next;
end;
MDB.CreateDataSet;
JSONToDataSet(JAry,mdb);
MDB.Post;
MDB.First;
end;
end;
记得引用单元
XSuperJSON,
XDataToJson,
XSuperObject,
FireDAC.Comp.Client;
|