function Test.DataSetToJson(ADataset: TDataSet): string;
var
ARecord: string;
AField: TField;
i: integer;
begin
Result := '';
with ADataset do
begin
// 如果dataset是空就退出
if IsEmpty then
Exit;
//初始化ARecord
ARecord := '';
//定义开头
Result := '[';
//循环行
while not Eof do
begin
//循环列
for i := 0 to FieldCount - 1 do
begin
//取列值 FieldName列名 Text列值
AField := Fields[i];
if ARecord = '' then
begin
ARecord := '{"' + AField.FieldName + '":"' + AField.Text + '"'
end
else
begin
ARecord := ARecord + ',"' + AField.FieldName + '":"' + AField.Text + '"';
end;
//判断是否到最后一列
if i = FieldCount - 1 then
begin
ARecord := ARecord + '}';
//判断result是否第一次填充
if Result = '[' then
begin
Result := Result + ARecord
end
else
begin
Result := Result + ',' + ARecord;
end;
//列结束,重置 ARecord
ARecord := '';
end;
end;
Next;
end;
end;
//] 结尾
Result := Result + ']';
end;