Hat Jackson JSON-Besondere char der Flucht?
Ich war der Annahme, dass Jackson würde automatisch spezielle escape-Zeichen, die während der Serialisierung, d.h. serialisieren "/Pfad/" durch "\/Pfad\/". Es scheint nicht der Fall zu sein - zumindest out of the box mit 1.6:
@Test
public void testJacksonSerialize() throws Exception
{
ObjectMapper om = new ObjectMapper();
assertEquals("\\/path\\/", om.writeValueAsString("/path/"));
}
...schlägt fehl - die erstellte Ausgabe ist "/Pfad/". Muss ich schreiben, dass meine eigenen serializer oder gibt es eine Möglichkeit, um zu ermöglichen, Besondere char der Flucht in Jackson?
Dank,
-nikita
- Der virgule ist ein spezielles Zeichen im JSON-strings?
- Ist
/
ungültige JSON? - Tatsächlich, ob "/" sollte maskiert werden, ist die bessere Frage. Ich nahm also aus der Betrachtung dieser Twillio doc: twilio.com/docs/api/2010-04-01/rest/..., Aber JSLint-ain ' T beschweren. Warum ist Twilio Flucht "/" dann in JSON Antworten?
- Schlägt mich. Ich kann nichts finden, das sagt
/
Bedürfnisse der Flucht.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Jackson entgeht nur obligatorische Dinge. "/" ist nicht etwas, das man fliehen muss, deshalb ist es auch nicht. Dies als pro-JSON-Spezifikation.
Nun: wenn Sie unbedingt wollen, zu entkommen, können Sie Methoden zum schreiben von "raw" - Inhalte oder Werte (in dem Fall Jackson keine Verarbeitung zu löschen und speichert Strings im output).
Aber brauchen Sie wirklich so rutschig? Ich kenne einige Generatoren entkommen Sie es (aus mir unbekannten Gründen), aber keine der parser erwartet, dass es so sollte es einfach gut sein zu lassen Schrägstriche ohne Umschreibung. Dies unterscheidet sich von backslashes, die natürlich geschützt werden müssen.
Dem Schrägstrich "/" muss nicht escaped werden im JSON-denn es hat keine Besondere Bedeutung. Noch JSON ermöglicht der slash maskiert werden, aus folgendem Grund.
Wenn Sie dump ein JSON-text direkt in ein <SCRIPT> - element eines HTML-text, die Sie haben, um sicherzustellen, dass die zwei-Zeichen-Sequenz "</" nicht im text vorkommen. Diese Sequenz würde am Ende das script-element sofort nach HTML-Regeln. Aber wenn der JSON-text lautet: "<\/", dies hat die gleiche Bedeutung wie JSON, während nicht interferring mit HTML-Regeln. Folglich, einige JSON-Generatoren escape the slash, wenn, und nur wenn es mit einem vorangestellten kleiner-als-Zeichen.
Dass gesagt wird, ich weiß nicht die direkte Antwort auf deine Frage (wie durchaus die Flucht in Jackson).
Neue-Zeile-Zeichen wird nicht funktionieren, falls der Tooltip mit einigen Browsern.
Nicht arbeiten \r\n Nicht funktioniert, oder \n Nicht funktioniert
Verwenden Sie einen doppelten umgekehrten Schrägstrich-zum überspringen Zeichen
Lösung : verwenden Sie '\\r\\n' statt '\r\n' ,
es wird Ihr problem lösen.