Delphi最大的特点是数据库操作便捷。为了能够给App提供数据,这里采用Rest Server后台,然后在用Json文件发送到APP前台。
1.后台的dataset转换为json。
这里百度后就可以找到相应的代码,直接可以参考:
function DataSetToJson(ADataset: TDataSet): string; // [{"CityId":"18","CityName":"西安"},{"CityId":"53","CityName":"广州"}] var LRecord: string; LField: TField; i: integer; begin Result := '['; if (not ADataset.Active) or (ADataset.IsEmpty) then Exit; //Result := ''; //2018.4.10 ADataset.DisableControls; ADataset.First; while not ADataset.Eof do begin for i := 0 to ADataset.FieldCount - 1 do begin LField := ADataset.Fields[i]; if LRecord = '' then LRecord := '{"' + LField.FieldName + '":"' + LField.Text + '"' else LRecord := LRecord + ',"' + LField.FieldName + '":"' + LField.Text + '"'; if i = ADataset.FieldCount - 1 then begin LRecord := LRecord + '}'; if Result = '[' then Result := Result + LRecord else Result := Result + ',' + LRecord; LRecord := ''; end; end; ADataset.Next; end; ADataset.EnableControls; Result := Result+']';//rightstr(Result,length(result)-1) ; //2018.4.10 end;
2.为App提供Json函数
(1).函数定义:
function GetJsonAccess:string;
(2)函数的具体代码:
function TServerMethods1.GetJsonAccess: string; begin result:=DataSetToJson(ADOQuery1) ; end;
注意事项:这里函数的返回值,可以用TJSONArray,也可以直接用string。我这里用string到是更简洁一些。
后台运行后,通过浏览器可以访问json结果,如后台地址为:
http://192.168.3.2:8080/datasnap/rest/TServerMethods1/GetJsonAccess/ ,结果为:
{"result":["[{\"memID\":\"1\",\"username\":\"zs\",\"password\":\"111111\",\"name\":\"\u5F20\u4E09\"},{\"memID\":\"2\",\"username\":\"ls\",\"password\":\"222222\",\"name\":\"\u674E\u56DB\"},{\"memID\":\"3\",\"username\":\"ww\",\"password\":\"333333\",\"name\":\"\u738B\u4E94\"}]"]}
通过对json的分析,我们可以看到最外层是result字段,内容为一个json数组,然后最里面是数据表中的字段和相对于应的值。通过对该json数据的分析,以便于我们在app中进行遍历。