Schrägstrich in Jackson entkommen

8

Ich benutze Jackson, um JSON-Objekte zu generieren und schreibe sie direkt in das HTML-Tag, so:

%Vor%

Dieser Code bricht ab, wenn eine Zeichenfolge '</script>' enthält. Der Schrägstrich (/) würde das Problem lösen und wird von JSONs Spezifikation zugelassen.

Wie aktiviere ich es in Jackson?

    
Infeligo 25.07.2011, 14:16
quelle

3 Antworten

7

Zusätzlich zu anderen Vorschlägen verfügt Jackson 1.8 auch über die Funktion " Zeichen-Escapes ", mit der es möglich ist, umgehende Regeln zu ändern. Dokumentation fehlt, aber im Grunde müssen Sie CharacterEscapes implementieren (siehe Ссылка ), registrieren Sie sich mit JsonFactory (oder direkt JsonGenerator), und dann wird das Entkommen gemäß den Regeln ausgeführt, die Sie wollen. In diesem Fall könnten Sie einfach die Einstellungen für '/' ändern, um ESCAPE_STANDARD zu verwenden.

Zusätzlich können Sie auch eine Feature-Anfrage hinzufügen, um eine einfache Ein- / Aus-Funktion hinzuzufügen, da diese spezifische Sache klingt, als ob sie auch für andere nützlich wäre. Soweit ich weiß, wurde es jedoch noch nicht ausdrücklich angefordert.

    
StaxMan 25.07.2011, 19:54
quelle
7

Mit der Antwort von StaxMan endete der folgende Code:

%Vor%     
Infeligo 26.07.2011 07:21
quelle
6

Dank StaxMan und Infeligo's Antworten hier (Prost Jungs) habe ich einen Weg gefunden, um das (IMHO schreckliche) WCF DataContractJsonSerializer-Datumsstandardformat zu umgehen:

%Vor%

was erfordert, dass das / mit einem Backslash maskiert wird, was folgendes über den Draht ergibt:

%Vor%

Nur für den Fall, dass es jemand anderem helfen könnte, ist mein CustomCharacterEscapes-Code, den ich verwendet habe:

%Vor%     
stewart 01.02.2012 00:37
quelle

Tags und Links