HTML-Zeichen-Escape in json.Marshal umgehen
Die json.Marshal-Funktion von Go maskiert automatisch bestimmte Zeichen, einschließlich < und >, um Fehlinterpretationen durch Browser zu verhindern. Dieses Verhalten kann jedoch bei der Serialisierung von XML-Daten unerwünscht sein, da es den beabsichtigten Inhalt verändert.
Leider ist es nicht möglich, die Zeichen-Escape-Funktion allein mit der json.Marshal-Funktion zu deaktivieren. Aus dem Quellcode geht hervor, dass Zeichen-Escapezeichen fest als wahr codiert sind, wodurch sichergestellt wird, dass < und > werden immer in „u003c“ bzw. „u003e“ konvertiert. Diese Einschränkung erstreckt sich auch auf die Implementierung benutzerdefinierter MarshalJSON-Methoden, da diese weiterhin auf der internen json.Marshal-Implementierung basieren.
Um dieses Hindernis zu überwinden, besteht eine Problemumgehung darin, eine benutzerdefinierte Funktion für das Marshalling zu definieren. Hier ist eine modifizierte Version Ihres Track-Typs, die eine JSON-Methode implementiert:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
Mit dieser benutzerdefinierten JSON-Methode können Sie das Escape-Verhalten steuern, indem Sie SetEscapeHTML(false) explizit festlegen.
Wenn Sie eine generische Lösung für eine beliebige Struktur benötigen, können Sie die folgende Funktion definieren:
1 2 3 4 5 6 7 8 9 10 |
|
Das obige ist der detaillierte Inhalt vonWie umgehe ich das HTML-Zeichen-Escape in Gos „json.Marshal'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!