Faster XML Jackson: Remove double quotes

I have the following json:

{"test":"example"}

I use the following code from Faster XML Jackson.

JsonParser jp = factory.createParser("{\"test\":\"example\"}");
json = mapper.readTree(jp);
System.out.println(json.get("test").toString());

It outputs:

"example"

Is there a setting in Jackson to remove the double quotes?


Solution 1:

Well, what you obtain when you .get("test") is a JsonNode and it happens to be a TextNode; when you .toString() it, it will return the string representation of that TextNode, which is why you obtain that result.

What you want is to:

.get("test").textValue();

which will return the actual content of the JSON String itself (with everything unescaped and so on).

Note that this will return null if the JsonNode is not a TextNode.

Solution 2:

Simple generic ternary to use the non-quoted text, otherwise keep the node intact.

node.isTextual() ? node.asText() : node