Schneller XML-Jackson: Entfernen Sie doppelte Anführungszeichen
Habe ich folgenden json:
{"test":"example"}
Ich verwende den folgenden code aus Schneller XML-Jackson.
JsonParser jp = factory.createParser("{\"test\":\"example\"}");
json = mapper.readTree(jp);
System.out.println(json.get("test").toString());
It-Ausgänge:
"example"
Gibt es eine Einstellung in Jackson, entfernen Sie die doppelten Anführungszeichen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gut, was Sie erhalten, wenn Sie
.get("test")
ist einJsonNode
und es kommt zu einemTextNode
; wenn Sie.toString()
es, wird es wieder die string-Darstellung, dieTextNode
, das ist, warum Sie erhalten das Ergebnis.Was Sie wollen, ist:
zurückgeben wird, den eigentlichen Inhalt der JSON-String selbst (mit allem, ohne Umschreibung und so weiter).
Beachten Sie, dass diese null zurückgibt, wenn die
JsonNode
ist nicht eineTextNode
.JsonNode.toString()
sollte nicht verwendet werden, für nichts anderes als Fehlersuche / trouble-shooting: es ist nicht (zum Beispiel) geeignet für Serialisierung. Statt. objectMapper.writeValueAsString(Knoten) ist der richtige Weg, und kümmert sich um alle die Flucht/zitieren Aspekte, mit-mapper-Konfiguration möglich, die Einrückung.Einfache generische ternären um die nicht-zitierten text, sonst halten die Knoten intakt.
objectMapper.writeValueAsString(node)