@JsonIgnoreproperties(ignoreUnknown = true)

这个注解在将实体类进行json序列化和反序列化时可以将无法映射的属性忽略,针对的时jackson。如果时fastjson则不存在这个问题,会自动给忽略不存在的属性
例:
1、引入jar包

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
</dependency>

2、新建一个实体类

@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class AreaParam {
    private long id;
    private String area_name;
    private String area_comments;
    private String status;
    private Timestamp create_time;
    private Timestamp update_time;
}

3、编写测试类

String jsonStr="{\n" + "\"id\":\"1\",\n"+ "\"status\":\"I\",\n"+ "\"comment\":\"aaaaa\",\n"+
                "            \"area_name\": \"a\",\n" +
                "            \"area_comments\": \"字母字符\",\n" +
                "            \"create_time\": \"2023-02-24T03:06:14.000+0000\",\n" +
                "            \"update_time\": \"2023-02-24T03:06:14.000+0000\"\n" +
                "        }";
        //AreaParam areaParam = JSONObject.parseObject(jsonStr, AreaParam.class);

        ObjectMapper objectMapper=new ObjectMapper();
        AreaParam areaParam =objectMapper.readValue(jsonStr, AreaParam.class);
        System.out.println(areaParam.toString());

以上json字符串比实体类多了一个“comment”属性,转换时如果没有添加@JsonIgnoreproperties(ignoreUnknown = true)则会报错,无法解析的filed属性,comment,加上之后正常反序列化

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
xiaoxingxing的头像xiaoxingxing管理团队
上一篇 2023年12月14日
下一篇 2023年12月14日

相关推荐