问题描述
高德地图逆地理编码接口返回数据中,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;
}
}
本文探讨了高德地图逆地理编码接口返回数据中city字段的特殊处理方式,特别是针对省直辖县及四大直辖市的情况,并提供了一段Java代码示例来解决反序列化过程中出现的问题。
1845

被折叠的 条评论
为什么被折叠?



