Delphi DataSet和JSON互转函数
发布时间:2020-12-15 09:56:48 所属栏目:大数据 来源:网络整理
导读:一、DataSet转JSON //1)数据集转换为JSON字符串://需USES System.JSON;function DataSetToJson(ADataset: TDataSet): string;// [{"CityId":"18","CityName":"西安"},{"CityId":"53","CityName":"广州"}]var LRecord: string; LField: TField; i: integer;
一、DataSet转JSON //1)数据集转换为JSON字符串: //需USES System.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 := '['; 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 + ']'; end; 二、JSON转DataSet //2)JSON字符串转换为数据集: procedure JsonToDataSet(AJson: string; ADataset: TDataSet); var jDataSet: TJSONArray; jRecord: TJSONObject; i,j: Integer; begin if (AJson = '') or (ADataset = nil) or (not ADataset.Active) then Exit; jDataSet := TJSONObject.Create.ParseJSONValue(AJson,True) as TJSONArray; while not ADataset.Eof do ADataset.Delete; for i := 0 to jDataSet.Size - 1 do begin ADataset.Append; jRecord := jDataSet.Get(i) as TJSONObject; for j := 0 to ADataset.FieldCount - 1 do ADataset.Fields[j].Text := jRecord.GetValue(ADataset.Fields[j].FieldName).ToString; ADataset.Post; end; end; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读