2016-04-11 10 views
1

Ich bin ziemlich glücklich der jackson objectmapper Benutzer.Html in JSON (keine Notwendigkeit für JSON-Spezifikation)

Aber eine Sache, die mir Fehler macht ist die Art, wie ich manuell HTML in JSON eingeben muss, gibt es eine Menge Entkommen, die für einen unerfahrenen Benutzer sehr schwierig ist.

Gibt es eine Möglichkeit das unescaped plain html in einer json-Datei zuzulassen, die von jackson gelesen werden kann? Zum Beispiel so etwas wie cdata in xml.

Der JSON muss nicht die JSON-Spezifikationen/-Standards erfüllen und eine Vor- oder Nachbearbeitung ist möglich. Aber es muss manuell in den JSON mit z. B. Notepad eingegeben werden.

Es gibt viele Fragen und Antworten zu Stackoverflow zu diesem Thema, aber meistens müssen alle die JSON-Spezifikation erfüllen, was für mich keine Voraussetzung ist.

+0

Sie könnten ein Werkzeug verwenden, um den HTML-Code zu entfernen, bevor Sie ihn in die JSON-Datei einfügen. Schreibe HTML in Notepad -> es mit einem Online-Tool entkommen -> fügen Sie es in die JSON-Datei. – Teddy

+0

http://www.freeformatter.com/javascript-escape.html – Teddy

+0

Oder Sie könnten ein grafisches Werkzeug schreiben, um Ihre Eingaben zu nehmen und die JSON-Datei zu generieren, wenn Sie diese Aktivität oft machen müssen. – Teddy

Antwort

1

habe ich mit @Teddy Lösung gehen:

Genau so etwas wie CDATA hinzufügen und speichern Sie die Datei als .jsonxyz.Then eine benutzerdefinierte Java-Programm ausführen, die .jsonxyz umwandeln würde .json

Mit einem Muster übereinstimmt

<cdata>(.*?)</cdata> 

ich die cdata html in meinem json enthält. Mit appendReplacement habe ich den HTML-Code durch HTML-Code ersetzt, der mit json kompatibel ist. Als nächstes lese ich einfach den ganzen JSON mit Jackson.

es um serialisiert wieder mit cdata und unescaped html i erweitert:

HtmlFieldSerializer extends JsonSerializer<String>{ 
... 
gen.writeRaw(": \"<cdata>"+value+"</cdata>\""); 

Weiter jackson json einfach schreiben kann Datei.

Verwandte Themen