use System.JSON;
function DatasetToJson(dataset: TDataSet): string;
var
i: Integer;
jo: TJSONObject;
ja: TJSONArray;
field: TField;
blob: TStringStream;
begin
Result := '[]';
if (dataset = nil) or (not dataset.Active) then
Exit;
ja := TJSONArray.Create;
try
dataset.First;
while not dataset.Eof do
begin
jo := TJSONObject.Create;
for i := 0 to dataset.FieldCount - 1 do
begin
field := dataset.Fields[i];
if field.IsNull then
jo.AddPair(field.FieldName, '')
else
begin
case field.datatype of
ftBoolean:
if field.AsBoolean then
jo.AddPair(field.FieldName, TJSONTrue.Create)
else
jo.AddPair(field.FieldName, TJSONFalse.Create);
ftSmallint, ftInteger, ftWord, ftAutoInc:
jo.AddPair(field.FieldName, TJSONNumber.Create(field.AsInteger)
Delphi Dataset转JSON, 数字和逻辑值正确转换
最新推荐文章于 2024-04-30 16:44:46 发布