Spring RestTemplate布尔盖反序列化

我正在使用spring RestTemplate将json反序列化为对象。我面临的挑战是json中的布尔值全都大写了。当我尝试反序列化它们时,我收到HttpMessageNotReadableException。

  

spring.springframework.http.converter.HttpMessageNotReadableException:JSON解析错误:无法从字符串“ FALSE”中反序列化java.lang.Boolean类型的值:仅识别为“ true”或“ false”;

所以我的问题是如何为此布尔值添加自定义映射。

ResponseEntity<List<myobject>> responseEntity = restTemplate.exchange(url,HttpMethod.GET,null,new ParameterizedTypeReference<List<myobject>>() {
                });
        return responseEntity.getBody();
jieqide 回答:Spring RestTemplate布尔盖反序列化

您可以使用“自定义反序列化器”。看看com.fasterxml.jackson.databind.JsonDeserializer注释。

请参见下面的MyBooleanDeserializer示例。它可以处理CAPS中的值:

public class MyObject {
    @JsonDeserialize(
            using = MyBooleanDeserializer.class,as = Boolean.class
    )
    private boolean bool;
}
class MyBooleanDeserializer extends JsonDeserializer {
    @Override
    public Object deserialize(JsonParser jsonParser,DeserializationContext deserializationContext) throws IOException,JsonProcessingException {
        return Boolean.parseBoolean(jsonParser.getValueAsString().toLowerCase());
    }
}
本文链接:https://www.f2er.com/2951032.html

大家都在问