正如标题所示,使用 Delphi 2010 和 MyDAC 7.1,如何将整个字符串输出为 JSON / XML / CSV 或其他纯文本选项等字符串?
例如输出:
{user_id:1;username:testuser;password:testpass}
根据文档,您可以使用SaveToXML程序。应该是这样的:
var
MyQuery: TMyQuery;
begin
try
MyQuery := TMyQuery.Create();
MyQuery.Connection := AConnection;
MyQuery.SQL.Text := ACommand;
MyQuery.Execute();
MyQuery.SaveToXML(<tstream or file>)
except
raise;
end;
end;
假设这MyDAC
是一个标准的TDataSet
后代,您可以手动构建字符串。例如,对于 JSON:
var
i: Integer;
Output: string;
begin
Output := '{'; // #123;
for i := 0 to MyQry.FieldCount - 1 do
Output := Output +
MyQry.Fields[i].FieldName + ':' + // #58
MyQry.Fields[i].AsString + ';'; // #59
// Replace final ; with closing } instead
Output[Length(Output)] := '}'; // #125
end;
或者你可以谷歌找到一个 Delphi JSON 库(如SuperObject)并使用它,就像在这里所做的那样。
对于 XML,使用与 TXMLDocument 相同的类型循环。您可以在此处搜索带有 Delphi 标记的以前的帖子以查找示例。
对于 CSV,它可能会根据您的数据和要求变得复杂。例如,您是否想要或需要带有字段名称的标题行?您的数据是否包含包含空格或标点符号或 CR/LF 的数据?最简单的解决方案是搜索导出为 CSV 的现有库(通过 Google 或 Bing,而不是此处)。