Jackson-@JsonIgnore、@JsonIgnoreProperties

一、@JsonIgnore

1、作用
在json序列化时将java bean中的一些属性忽略掉,序列化和反序列化都受影响。

2、使用
一般标记在属性或者方法上,返回的json数据即不包含该属性。

3、实例
3.1、jackson的maven依赖

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

3.2、实体类

import com.fasterxml.jackson.annotation.JsonIgnore;

public class HomeResponse {
    private String userName;

    @JsonIgnore
    private String passWord;

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassWord() {
        return passWord;
    }

    public void setPassWord(String passWord) {
        this.passWord = passWord;
    }
}

3.3、测试方法

import com.example.demo.model.HomeResponse;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;

public class JSONTest {
    public static void main(String[] args) throws IOException {
        HomeResponse response = new HomeResponse();
        response.setUserName("LL");
        response.setPassWord("123");
        System.out.println(new ObjectMapper().writeValueAsString(response));
    }
}

执行结果:

{"userName":"LL"}

4、@JsonIgnore不生效问题

代码中使用alibaba的fastjson,@JsonIgnore不是fastjson的,所以不生效需将注解改为@JSONField(serialize = false),JSONField来自com.alibaba.fastjson.annotation包的,然后序列化的时候就生效了。

二、@JsonIgnoreProperties

1、作用
防止json转成实体类时因为字段的缺少或过多而报错

2、使用
标记在实体类上

3、实例

@JsonIgnoreProperties(ignoreUnknown = true)

文章仅作为个人学习整理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值