Autor Téma: JSON convert to "human readable"  (Přečteno 436 krát)

Offline sebik

  • Nováček
  • *
  • Příspěvků: 16
  • Karma: 0
JSON convert to "human readable"
« kdy: 22-08-2021, 10:25:12 »
Zdarvím,

přes Indy (IdHTTP.Get) dostávám zpět např.
{"JsonObjectData":"{\u0022text\u0022:\u0022Error na strane platebniho terminalu: Transakce byla zru\\u0161ena z\\u00E1kazn\\u00EDkem\u0022,\u0022desc\u0022:\u0022\u0022,\u0022caption\u0022:\u0022Info\u0022,\u0022MessageType\u0022:0}","ObjectType":7}

Dotaz je jednohuchý: Jak nejlépe v Delphi XE4 z toho dostat "lidský" JSON:
{"JsonObjectData":"{\"text\":\"Error na strane platebniho terminalu: Transakce byla zrušena zákazníkem\",\"desc\":\"\",\"caption\":\"Info\",\"MessageType\":0}","ObjectType":7}

Nahrazováním... u0022>", \\u0161>š... ???

Offline Jan Fiala

  • Plnoletý
  • ***
  • Příspěvků: 238
  • Karma: 3
    • Verze Delphi: 10.4.1
    • PSPad editor
Re:JSON convert to "human readable"
« Odpověď #1 kdy: 22-08-2021, 20:42:04 »
Na přeformátování JSON používám SuperObject. Parametr APrettyPrint jestli to chci preformatovat do čitelné formy nebo zkompresovat.

Kód: Delphi [Vybrat]
  1. function FormatJson (const JSONstring: string; const APrettyPrint: Boolean): string; // Input string is "InString"
  2. var
  3.   Json : ISuperObject;
  4. begin
  5.   try
  6.     Json := TSuperObject.ParseString(PChar(JSonstring), True);
  7.     Result := Json.AsJson(APrettyPrint, false); //Here comes your result: pretty-print JSON
  8.   except
  9.     Result := '';
  10.   end;
  11. end;

Offline sebik

  • Nováček
  • *
  • Příspěvků: 16
  • Karma: 0
Re:JSON convert to "human readable"
« Odpověď #2 kdy: 23-08-2021, 13:59:49 »
funguje, dík