У меня возникла проблема с использованием геокодирования google api. Например, с этим url http://maps.google.com/maps/api/geocode/json?latlng=47.3195254,5.0430687&sensor=true, я хочу разобрать json с jackson 2, чтобы создать POJO.Jackson 2 deserialization
Так что мой класс
public class GeocoderResult {
@JsonProperty("results") private List<GeocoderGoog> geocoder;
@JsonProperty("status") private String status;
public List<GeocoderGoog> getGeocoder() {
return geocoder;
}
public String getStatus() {
return status;
}
}
десериализации JSON, я использую
HttpURLConnection connection = (HttpURLConnection) new URL(baseUrl).openConnection();
ObjectMapper mapper = new ObjectMapper();
// disable exceptions when there is unknown properties
mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
int statusCode = connection.getResponseCode();
Log.d(Constants.D_TAG, "Status : "+statusCode);
if (statusCode == HttpURLConnection.HTTP_OK) { // 200
InputStream is = new BufferedInputStream(connection.getInputStream());
status = (Status) mapper.readValue(is, GeocoderResult.class);
}
Я следующее сообщение об ошибке:
09:38:42.737 Thread-24889 An exception occurred during request network execution :Unexpected close marker '}': expected ']' (for ROOT starting at [Source: [email protected]; line: 1, column: 0])
at [Source: [email protected]; line: 2, column: 14]
com.fasterxml.jackson.core.JsonParseException: Unexpected close marker '}': expected ']' (for ROOT starting at [Source: [email protected]; line: 1, column: 0])
Я не понимаю, где проблема ...
ps: Я использую jackson-core, jackson-databind и jackson-annotations. 2.1.4
JSON, который вы получаете, недействителен - некоторые материалы отсутствуют, скорее всего. Не имеет ничего общего с привязкой данных, исключение происходит прямо из потокового анализатора. – StaxMan
Это может быть проблема с версией jackson? – mrroboaat
Нет. Прочтите сообщение об исключении. Несовместимость версий дает довольно четкие ошибки при загрузке классов. Это указывает на сломанный вход JSON - почему это так, я не могу спекулировать. Вы можете справиться с этим, предварительно прочитав и буферизируя контент, затем передав его парсеру - и, возможно, запустив вход для поиска неисправностей. – StaxMan