Thema: Delphi JSon Formatieren

Einzelnen Beitrag anzeigen

HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
969 Beiträge
 
Delphi 6 Professional
 
#15

AW: JSon Formatieren

  Alt 24. Feb 2018, 15:57
Hmm..

Es geht doch nur darum, einen JSON-Text (String) so zu formatieren, dass er lesbar eingerückt und umgebrochen wird?

Hab das mal eben recht einfach als eine simple Funktion erstellt:

Delphi-Quellcode:
function FormatJSONStr(AString : string):String;
var
  idx : integer;
  InStr : boolean;
  i : integer;
begin
  Result := '';
  idx := 0;
  InStr := false;
  For i := 1 to length(AString) do begin
    if not InStr then begin
      if AString[i] in [']','}'] then begin
        inc(idx, -1);
        Result := Result + #13#10 + StringOfChar(#9 , idx);
      end;
    end;
    Result := Result + AString[i];
    if AString[i] = '"then begin
      if (i > 1) and (AString[i-1] <> '/') then InStr := not InStr;
    end;
    if not InStr then begin
      if AString[i] in [','] then begin
        Result := Result + #13#10 + StringOfChar(#9 , idx);
      end;
      if AString[i] in ['{','['] then begin
        Inc(idx);
        Result := Result + #13#10 + StringOfChar(#9 , idx);
      end;
    end;
  end;
end;
Ist nicht schön, jedoch gibt es zumindestens mit deinen Beispielen etwas schön formatiertes heraus.
Es berücksichtigt auch, das die Sonderzeichen (,[]{}") auch in JSON-Strings vorhanden sein können.

Es wurde mit D6 erstellt, so dass für XE noch das 'String in []' gegen (ich glaube) CharInStr ausgetauscht werden sollte...
Hab kein XE und konnte es somit nicht probieren..
  Mit Zitat antworten Zitat