Flucht nach vorn slash in Jackson
Benutze ich Jackson zum generieren von JSON-Objekten und schreiben Sie direkt in das HTML-tag, wie diesem:
<script>
var data = $SomeJacksonWrapper.toJson($data);
</script>
Diesen code bricht, wenn einige Zeichenfolge enthält '</script>'
in es. Flucht Schrägstrich (/) würde das problem lösen, und es ist alowed von JSON ist spec.
Wie aktiviere ich es in Jackson?
- Könnten Sie nicht die Flucht in $data?
- Siehe stackoverflow.com/questions/5006185/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Neben anderen Anregungen, Jackson 1.8 hat auch " Zeichen-escapes " - Funktion, die ermöglicht die Neudefinition der Flucht Regeln. Dokumentation fehlt, aber im Grunde müssen Sie implementieren
CharacterEscapes
(siehe http://jackson.codehaus.org/1.8.2/javadoc/org/codehaus/jackson/io/CharacterEscape), register mit JsonFactory (oder direkt JsonGenerator), und dann die Flucht erfolgt nach Regeln, was Sie wollen. In diesem Fall können Sie nur Einstellungen ändern, die für '/' zu verwenden ESCAPE_STANDARD.Zusätzlich könnte man auch einen feature-request hinzufügen einfache on/off-Funktion, wie dieses bestimmte Ding klingt wie es könnte nützlich sein für andere. Aber noch nicht gebeten worden, konkret, soweit ich weiß.
Mit StaxMan's Antwort, ich landete mit dem folgenden code:
Dank StaxMan und Infeligo die Antworten von hier (prost Jungs) fand ich einen Weg, um die Flucht für /passend das (IMHO schrecklichen) WCF DataContractJsonSerializer Datum standard-format:
was braucht die /escapen mit einem backslash ergeben sich in den folgenden über den Draht:
Fall kann es helfen, jemand anderes hier ist mein CustomCharacterEscapes code, den ich verwendet: