На самом деле, вы должны сначала проанализировать строку JSON в JsonNode Джексона .
public <T> T readValue(JsonParser jp,
Class<T> valueType)
throws IOException,
JsonParseException,
JsonMappingException
Метод десериализации содержимого JSON в неконтейнерный тип (однако это может быть тип массива): обычно это bean-компонент, массив или тип-оболочка (например, Boolean).
Примечание: этот метод НЕ следует использовать, если типом результата является контейнер (Коллекция или Карта). Причина в том, что из-за стирания типа нельзя использовать интроспективные типы ключей и значений при использовании этого метода.
В конце концов, есть 2 решения вашей проблемы, как показано ниже: -
1. Быстрый разбор: -
BufferedReader in = new BufferedReader(newInputStreamReader(connection.getInputStream()));
StringBuilder build = new StringBuilder();
String inputLine;
while ((inputLine = in.readLine()) != null) {
build.append(inputLine); }
in.close();
ObjectMapper mapper = new ObjectMapper();
Feature wrap = mapper.readValue(mapper.readTree(build), Feature.class);
2. Разбор низкого уровня: -
BufferedReader in = new BufferedReader(newInputStreamReader(connection.getInputStream()));
StringBuilder build = new StringBuilder();
String inputLine;
while ((inputLine = in.readLine()) != null) {
build.append(inputLine); }
in.close();
ObjectMapper mapper = new ObjectMapper();
JsonFactory factory = mapper.getFactory();
JsonParser parser = factory.createParser(build);
Feature wrap = mapper.readValue(mapper.readTree(parser), Feature.class);