var i: integer; JSONArray: TJSONArray; JSONObj: TJSONObject; Field: TField; StrList: TStringList; begin JSONArray := TJSONArray.Create; FDquery1.First; while not FDquery1.Eof do begin JSONObj := TJSONObject.Create; for I := 0 to FDquery1.FieldCount - 1 do begin Field := FDquery1.Fields[I]; // 根据字段类型转换 case Field.DataType of ftInteger, ftSmallint, ftAutoInc: JSONObj.AddPair(Field.FieldName, TJSONNumber.Create(Field.AsInteger)); ftLargeint: JSONObj.AddPair(Field.FieldName, TJSONNumber.Create(Field.AsLargeInt)); ftFloat, ftCurrency: JSONObj.AddPair(Field.FieldName, TJSONNumber.Create(Field.AsFloat)); ftBoolean: JSONObj.AddPair(Field.FieldName, TJSONBool.Create(Field.AsBoolean)); ftBlob, ftMemo, ftGraphic: JSONObj.AddPair(Field.FieldName, Field.AsString); // 或用 Base64 else if Field.IsNull then JSONObj.AddPair(Field.FieldName, TJSONNull.Create) else JSONObj.AddPair(Field.FieldName, Field.AsString); end; end; JSONArray.AddElement(JSONObj); FDquery1.Next; end; // 写入文件 StrList := TStringList.Create; StrList.Text := JSONArray.Format(2); // 2 = 缩进 StrList.Text:='{'+StrList.Text+'}';//前后 大括号 StrList.SaveToFile('eee.json', TEncoding.UTF8); StrList.Free; JSONArray.Free; showmessage('导出为eee.json'); end;
浙公网安备 33010602011771号