Java對象我有一個JSON:轉換ObjectNode使用傑克遜
{
"response": {
"GeoObjectCollection": {
"featureMember": [
{
"GeoObject": {
"description": "Country",
"name": "City",
"Point": {
"pos": "31.992615 45.057626"
}
}
},
{
"GeoObject": {
"description": "Country",
"name": "City",
"Point": {
"pos": "49.242414 49.895935"
}
}
}
]
}
}
}
我創建DTO:
GeographicCoordinateDto.java
:
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class GeographicCoordinateDto {
@JsonProperty("description")
private String location;
@JsonProperty("name")
private String cityName;
@JsonProperty("Point")
private GeographicCoordinatesDto geoCoordinates;
}
GeographicCoordinatesDto.java
:
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class GeographicCoordinatesDto {
@JsonProperty("pos")
private String geoCoordinates;
}
然後我得到JsonNode
:
List<JsonNode> responseArrayOfObjects = mapper.readValue(new URL(yandexGeoCoderRestUrl+address), ObjectNode.class).findValues("GeoObject");
而且我想轉換到我的DTO
:
GeographicCoordinatesDto geo = mapper.convertValue(responseArrayOfObjects.get(0), GeographicCoordinatesDto.class);
但是,我已經空對象,
GeographicCoordinatesDto(geoCoordinates=null)
什麼可能是錯的?
UPDATE:
responseArrayOfObjects
包含:
我會檢查所有的' JsonNode在列表中。閱讀JSON可能有錯誤? – Chris