我正在寻找一个函数,它将一串
JSON作为输入,并使用换行符和缩进(制表符)对其进行格式化.
例:
我有输入线:
{"menu": {"header": "JSON viewer","items": [{"id": "Delphi"},{"id": "Pascal","label": "Nice tree format"},null]}}
并希望以文本形式获得可读结果:
{ "menu":{ "header":"JSON viewer","items":[ { "id":"Delphi" },{ "id":"Pascal","label":"Nice tree format" },null ] } }
我发现了许多PHP和C#的例子,但不是Delphi.
有人可以帮忙这样的功能吗?
更新 – 使用SuperObject的解决方案:
function FormatJson (InString: WideString): string; // Input string is "InString" var Json : ISuperObject; begin Json := TSuperObject.ParseString(PWideChar(InString),True); Result := Json.AsJson(true,false); //Here comes your result: pretty-print JSON end;
解决方法
使用superobject库,确保使用
the latest version from the repository file,not the 1.2.4 ZIP.
然后你可以用.AsJSON(true)格式化你的TSuperObject对象(‘true’可以解决这个问题).
[请注意,您无法控制JSON字段的显示顺序]
[并从字符串创建对象:var lJSON:ISuperObject; lJSON:= SO(字符串); ]