USEGEAR

导航

学习unigui【17】-数据集和JSON互相转换-DataSetConverter4D 开源项目

学习unigui过程中,出现使用json和fdquery等数据交换的太多场景要求。

感谢开源DataSetConverter4D提供轮子。

直接抄demo:

{Convert DataSet to JSON:}
uses
DataSetConverter4D, DataSetConverter4D.Impl; var ja: TJSONArray; jo: TJSONObject; begin fCdsCustomers.DataSetField := nil; fCdsCustomers.CreateDataSet; fCdsCustomers.Append; fCdsCustomers.FieldByName('Id').AsInteger := 1; fCdsCustomers.FieldByName('Name').AsString := 'Customers 1'; fCdsCustomers.FieldByName('Birth').AsDateTime := StrToDateTime('22/01/2014 14:05:03'); fCdsCustomers.Post; fCdsCustomers.Append; fCdsCustomers.FieldByName('Id').AsInteger := 2; fCdsCustomers.FieldByName('Name').AsString := 'Customers 2'; fCdsCustomers.FieldByName('Birth').AsDateTime := StrToDateTime('22/01/2014 14:05:03'); fCdsCustomers.Post; //Convert all records ja := TConverter.New.DataSet(fCdsCustomers).AsJSONArray; //Convert current record jo := TConverter.New.DataSet.Source(fCdsCustomers).AsJSONObject; ja.Free; jo.Free; end;
{Convert JSON to DataSet:}
uses
DataSetConverter4D, DataSetConverter4D.Impl; JSON_ARRAY = [{ "Id": 1, "Name": "Customers 1", "Birth": "2014-01-22 14:05:03" }, { "Id": 2, "Name": "Customers 2", "Birth": "2014-01-22 14:05:03" }] JSON_OBJECT = { "Id": 2, "Name": "Customers 2", "Birth": "2014-01-22 14:05:03" } var ja: TJSONArray; jo: TJSONObject; begin fCdsCustomers.CreateDataSet; ja := TJSONObject.ParseJSONValue(TEncoding.ASCII.GetBytes(JSON_ARRAY), 0) as TJSONArray; jo := TJSONObject.ParseJSONValue(TEncoding.ASCII.GetBytes(JSON_OBJECT), 0) as TJSONObject; //Convert one record TConverter.New.JSON(jo).ToDataSet(fCdsCustomers); fCdsCustomers.EmptyDataSet; //Convert all records TConverter.New.JSON.Source(ja).ToDataSet(fCdsCustomers); ja.Free; jo.Free; end;

感谢:https://blog.csdn.net/sensor_WU/article/details/119730146

posted on 2024-02-01 10:59  USEGEAR  阅读(76)  评论(0编辑  收藏  举报