Ich nahm an, dass Jackson während der Serialisierung automatisch Sonderzeichen entziehen würde, d. h. "/ path /" als "\ / Pfad \ /" serialisieren. Es scheint nicht der Fall zu sein - zumindest mit 1.6:
%Vor%... schlägt fehl - die ausgegebene Ausgabe ist "/ path /". Muss ich meinen eigenen Serialisierer schreiben oder gibt es eine Möglichkeit, spezielle Char-Entkommen in Jackson zu ermöglichen?
danke, -nikita p>
Jackson entgeht nur den obligatorischen Dingen. "/" ist nicht etwas, dem du entkommen musst, daher ist es nicht. Dies gemäß der JSON-Spezifikation.
Jetzt: Wenn Sie unbedingt entkommen wollen, können Sie Methoden verwenden, um "rohe" Inhalte oder Werte zu schreiben (in diesem Fall verarbeitet Jackson keinerlei Verarbeitung und gibt String in Ausgabe aus).
Aber brauchen Sie wirklich solche Flucht? Ich weiß, dass einige Generatoren (aus mir unbekannten Gründen) entkommen, aber kein Parser erwartet es, also sollte es gut sein, Schnitte unausgebildet zu lassen. Dies unterscheidet sich von Backslashes, die offensichtlich maskiert werden müssen.
Der Schrägstrich "/" muss in JSON nicht maskiert werden, da er keine besondere Bedeutung hat. Dennoch erlaubt JSON , dass der Schrägstrich aus dem folgenden Grund maskiert wird.
Wenn Sie einen JSON-Text direkt in ein & lt; SCRIPT & gt; Als Element eines HTML-Textes müssen Sie sicherstellen, dass die Zwei-Zeichen-Sequenz "& lt; /" nicht im Text vorkommt. Diese Sequenz würde das Skriptelement sofort nach HTML-Regeln beenden. Wenn der JSON-Text jedoch "& lt; \ /" lautet, hat dies für JSON die gleiche Bedeutung, ohne die HTML-Regeln zu beeinträchtigen. Folglich entgehen einige JSON-Generatoren dem Schrägstrich, wenn und nur wenn ihm ein Kleiner-als-Zeichen vorangestellt ist.
Davon abgesehen, ich weiß nicht die direkte Antwort auf Ihre Frage (wie man die Flucht in Jackson absolut tun).
Der neue Zeilen-Charakter funktioniert nicht bei Tooltips mit einigen Browsern. Funktioniert nicht \ r \ n funktioniert nicht oder \ n funktioniert nicht
Verwenden Sie doppelten Backslash, um Zeichen zu überspringen
Lösung: Verwenden Sie '\\ r \\ n' anstelle von '\ r \ n', Es wird Ihr Problem lösen.