Я предполагаю, что метод apply()
, который вы указали в своем вопросе
public KeyValue<String, String> apply(String key, JsonNode value)
{
return new KeyValue<String,String>("a", "hello");
}
не передает жестко закодированный ключ и значение конструктору KeyValue
. Я предполагаю, что проблема как-то связана с JsonNode
. Возможно, фактическая реализация вашего метода использует value.get(key)
, т.е.
public KeyValue<String, String> apply(String key, JsonNode value)
{
return new KeyValue<String,String>(key, value.get(key));
}
Однако value.get(key)
вернет TextNode
, а метод toString()
вернет строковое представление TextNode
, включая кавычки. Чтобы правильно проанализировать JsonNode
, вам нужно использовать метод textValue()
, чтобы ваш метод стал
public KeyValue<String, String> apply(String key, JsonNode value)
{
return new KeyValue<String,String>(key, value.get(key).textValue());
}
Пример: * * тысяча двадцать одна
Предполагая, что у вас есть ключ a
и значение hello
,
json.get("a").toString())
вернет "hello"
, а
json.get("a").textValue();
вернет hello