Я читаю JSON из API, преобразовываю в POJO, выполняю некоторую логику и затем записываю POJO в файл JSON.
Вот как выглядит вход JSON из API
String jsonStr = "[{\"LastUpdatedBy\":\"Bug 101510: VMukkanagoudar\",\"IATACountryCode\":\"US\",\"MetroCodeBool\":false,\"AirportName\":\"Sawyer County\",\"Latitude\":46,\"CityName\":\"Hayward\",\"MajorAirportBool\":false,\"Longitude\":-91,\"StatusCode\":\"A\",\"DisplayNameLocal\":\"Hayward, WI (HYR-Sawyer County)\",\"DisplayNameInternational\":\"Hayward, WI, United States (HYR-Sawyer County)\",\"UpdateDate\":\"2009-03-06 20:44:00.0\",\"AirportCode\":\"HYR\",\"AirportID\":5396808,\"RegionName\":\"Wisconsin\",\"IdenticalMetroCodeBool\":false,\"ExternalName\":\"HYR\",\"CountryCode\":\"USA\"}]";
Это JSONArray с одним объектом Json внутри.
POJO выглядит так
@JsonIgnoreProperties(ignoreUnknown = true)
public class AirConfig {
String airportCode;
Integer airportId;
Boolean metroCodeBool;
@JsonProperty("airportCode")
public String getAirportCode() {
return airportCode;
}
@JsonProperty("AirportCode")
public void setAirportCode(String airportCode) {
this.airportCode = airportCode;
}
@JsonProperty("airportId")
public Integer getAirportId() {
return airportId;
}
@JsonProperty("AirportID")
public void setAirportId(Integer airportId) {
this.airportId = airportId;
}
@JsonProperty("metroCodeBool")
public Boolean getMetroCodeBool() {
return metroCodeBool;
}
@JsonProperty("MetroCodeBool")
public void setMetroCodeBool(Boolean metroCodeBool) {
this.metroCodeBool = metroCodeBool;
}
}
У меня есть другое значение @JsonProprty для setter и getter, потому что имя поля, когда я читаю из API (т.е. десериализация) отличается от того, когда я записываю POJO в файл (то есть сериализация).
Вот как я читаю строку
ObjectMapper mapper = new ObjectMapper();
mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
TypeReference<List<AirConfig>> typeRef = new TypeReference<List<AirConfig>>() {};
List<AirConfig> configs = mapper.readValue(jsonStr, typeRef);
//Logic
Но я продолжаю получать эту ошибку -
com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "airportCode" (class org.json.JSONObject), not marked as ignorable (0 known properties: ])
Как мне это исправить?