Я хотел бы разобрать поле вывода ElasticSearch. Вот пример моего (он содержит только один список значений):Parse ElasticSearch output with Jackson
"_source":
{
"key1": "value1",
"key2": "value2"
},
{
"key1": "value1",
"key2": "value2"
},
etc.
Я знаю, как добраться до _source
, но я не знаю, как разобрать его. Кажется, это единственный узел, не так ли?
EDIT:
Я пытался 'досягаемость' _source
поле, но это, кажется, не работает:
final ArrayNode _source = (ArrayNode) jsonNode.path(ES_HITS).path(ES_HITS).path(ES_SOURCE);
for (JsonNode value : _source)
{
try
{
lov.add(mapper.treeToValue(value, Lov.class));
} catch (JsonProcessingException e) { logger.error("GetLibelles : add : error : JsonProcessingException", e); }
}
Lov класс
@JsonIgnoreProperties(ignoreUnknown = true)
public class Lov extends ParentModel implements Serializable
{
private String key1;
private String key2;
private String key3;
private String key4;
// getters and setters
}
я ошибка Получено:
com.fasterxml.jackson.databind.node.MissingNode incompatible with com.fasterxml.jackson.databind.node.ArrayNode
Выход ElasticSearch:
{
"took":0,
"timed_out":false,
"_shards":
{
"total":1,
"successful":1,
"failed":0
},
"hits":
{
"total":1,
"max_score":1.0,
"hits":
[
{
"_index":"bla",
"_type":"lov",
"_id":"PWA8bmEBRDuys8JUCwg10w",
"_score":1.0,
"_source":
{
"key1": "value1",
"key2": "value2"
},
{
"key1": "value1",
"key2": "value2"
}
}
]
}}
, не могли бы вы ответить на ваш вопрос? – eliasah
Обновлено. Надеюсь, теперь ясно. –
Проголосовали! Спасибо за обновление – eliasah