使用"漂亮"打印JSON; (缩进)格式

时间:2014-07-10 09:50:50

标签: json delphi

如果我创建一个JSON对象并在控制台上打印它:

LJSONObject:= TJSONObject.Create;
LJSONObject.AddPair(TJSONPair.Create(TJSONString.Create('Hello'), TJSONString.Create('World')));
LJSONObject.AddPair(TJSONPair.Create(TJSONString.Create('Ciao'), TJSONString.Create('Mondo')));
Writeln(LJSONObject.ToString);

结果是:

{"Hello":"World", "Ciao":"Mondo"}

如何以更好的缩进打印结果,像这样?

{
   "Hello":"World",
   "Ciao":"MOndo"
}

2 个答案:

答案 0 :(得分:5)

TJSONObject不支持漂亮打印。

其他JSON库可以。例如SuperObject,如下所述:How do I pretty-print JSON in Delphi?

答案 1 :(得分:1)

正如Sir Rufo所指出的那样,从XE5开始有一个内置选项。

uses REST.JSON,System.JSON;
...
function PrettyJSON(jsonstring:String):String;
    var jdoc:TJSONObject;
begin
    jdoc:=TJSONObject.ParseJSONValue(jsonstring) as TJSONObject;
    result:=TJSON.Format(jdoc)
end;