Быстрее XML Джексон: удалите двойные кавычки
У меня есть следующий json:
{"test":"example"}
Я использую следующий код из Faster XML Jackson.
JsonParser jp = factory.createParser("{\"test\":\"example\"}");
json = mapper.readTree(jp);
System.out.println(json.get("test").toString());
Он выводит:
"example"
Есть ли настройка в Джексоне для удаления двойных кавычек?
Ответы
Ответ 1
Ну, что вы получаете, когда вы .get("test")
- это JsonNode
и это, оказывается, TextNode
; когда вы .toString()
, оно вернет строковое представление этого TextNode
, поэтому вы получите этот результат.
Вы хотите:
.get("test").textValue();
который вернет фактическое содержимое самой строки JSON (со всем, что не показано и так далее).
Обратите внимание, что это вернет null, если JsonNode
не является TextNode
.
Ответ 2
Простой общий тернар для использования некабельного текста, в противном случае сохранить узел неповрежденным.
node.isTextual() ? node.asText() : node