Джексон , библиотека разбора java json, похоже, поддерживает десериализаторы для каждого поля.В результате вы можете добавить @JsonDeserialize(using = NestedDeserializer.class)
к определенному «вложенному» полю json.NestedDeserializer
является реализацией com.fasterxml.jackson.databind.JsonDeserializer
.В настоящее время я работаю со следующей реализацией:
@Override
public LinkedHashMap<String, String> deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JsonProcessingException {
ObjectMapper m = (ObjectMapper) p.getCodec(); // am I sure that codec will always be ObjectMapper?
TextNode textNode = m.readTree(p);
LinkedHashMap<String, String> datum = m.readValue(textNode.asText(), LinkedHashMap.class);
return datum;
}
Что делает фрагмент, так это десериализует текущий токен в строку и просто запускает его через анализатор во второй раз.