问题描述
高德地图逆地理编码接口返回数据中,city
字段有时为[]
, 有时为字符串:
请注意:当城市是省直辖县时返回为空,以及城市为北京、上海、天津、重庆四个直辖市时,该字段返回为空;
使用Jackson反序列化时会有问题,解决办法如下:
@Getter
@Setter
@ToString
public static class AddressComponent {
private String country;
private String province;
@JsonProperty("citycode")
private String cityCode;
/**
* 当城市是省直辖县时返回为空,以及城市为北京、上海、天津、重庆四个直辖市时,该字段返回为空
*/
private Object city;
private String district;
public String getCity() {
if (city != null && city instanceof String) {
return (String) city;
}
// 直辖市
if (province.endsWith("市")) {
return province;
}
// 省直辖县
return district;
}
}