在我的json示例中,我遇到了问题,我无法解决它。
让我假装我有班级城市
class City {
int id;
int name;
Address address
}
有时从服务器到地址(即address_id,address_name ....)但在特定情况下没有地址时服务器返回false布尔值。
我尝试解析jsonObject
City city = new ObjectMapper().readValue(response.toString(), City.class);
地址返回一些数据,没关系。但是当地址返回false布尔值时我得到了这个错误
com.fasterxml.jackson.databind.JsonMappingException: Can not instantiate value of type from Boolean value
。
有什么方法可以解决这个问题吗?
案例1。
{
"isLogin": false,
"totalSum": 0,
"addressCount": 0,
"address": false,
}
案例2。
{
"isLogin": false,
"totalSum": 378,
"addressCount": 1,
"address": {
"id": "1127",
"name": "New York",
}
答案 0 :(得分:0)
Jackson正在等待地址对象而不是布尔值。尝试返回null而不是false。
答案 1 :(得分:0)
使用自定义反序列化器可以在这里工作。 您为City类型定义一个,如果读取地址的第一个事件为false,则将地址设置为null,如果它是START_OBJECT,则委托给Jackson地址类型的反序列化。