FastJson中@JSONField注解使用

由于Json中的key与bean中的属性不能匹配,在转换过程中出现部分属性为null的情况,此时可以使用@JSONField进行解释。

参考:FastJson及Gson定义字段别名

@JSONField的作用对象:

  1. Field
  2. Setter 和 Getter方法

注:FastJson操作时,是根据Getter和Setter的方法进行的,并不是依据Field进行

Address.java

public class Address {
    @JSONField(name = "address_id")
    private long id;
    @JSONField(name = "user_id")
    private long userId;
    private String name;
    private String mobile;
    private Region country;
    private Region state;
    private Region city;
    private Region district;
    @JSONField(name = "address_detail")
    private String addressDetail;
    @JSONField(name = "post_code")
    private String postcode;
    @JSONField(serialize = false)
    private boolean isDefault;

    public Address() {
    }

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public long getUserId() {
        return userId;
    }

    public void setUserId(long userId) {
        this.userId = userId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    @JSONField(serialize = false)
    public Region getCountryRegion() {
        return country;
    }

    @JSONField(name = "country")
    public String getCountry() {
        return country.getName();
    }

    @JSONField(serialize = false)
    public void setCountryRegion(Region country) {
        this.country = country;
    }

    @JSONField(name = "country")
    public void setCountry(String country) {
        Region region = new Region();
        region.setName(country);
        this.country = region;
    }

    @JSONField(serialize = false)
    public Region getStateRegion() {
        return state;
    }

    @JSONField(name = "state")
    public String getState() {
        return state.getName();
    }

    @JSONField(serialize = false)
    public void setStateRegion(Region state) {
        this.state = state;
    }

    @JSONField(name = "state")
    public void setState(String state) {
        Region region = new Region();
        region.setName(state);
        this.state = region;
    }

    @JSONField(serialize = false)
    public Region getCityRegion() {
        return city;
    }

    @JSONField(name = "city")
    public String getCity() {
        return city.getName();
    }

    @JSONField(serialize = false)
    public void setCityRegion(Region city) {
        this.city = city;
    }

    @JSONField(name = "city")
    public void setCity(String city) {
        Region region = new Region();
        region.setName(city);
        this.city = region;
    }

    @JSONField(serialize = false)
    public Region getDistrictRegion() {
        return district;
    }

    @JSONField(name = "district")
    public String getDistrict() {
        return district.getName();
    }

    @JSONField(serialize = false)
    public void setDistrictRegion(Region district) {
        this.district = district;
    }

    @JSONField(name = "district")
    public void setDistrict(String district) {
        Region region = new Region();
        region.setName(district);
        this.district = region;
    }

    public String getAddressDetail() {
        return addressDetail;
    }

    public void setAddressDetail(String addressDetail) {
        this.addressDetail = addressDetail;
    }

    public String getPostcode() {
        return postcode;
    }

    public void setPostcode(String postcode) {
        this.postcode = postcode;
    }

    public boolean isDefault() {
        return isDefault;
    }

    public void setDefault(boolean aDefault) {
        isDefault = aDefault;
    }
}

Region.java

public class Region {
    private int id;
    private String code;
    private String name;
    private int parentId;

    public Region() {

    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getParentId() {
        return parentId;
    }

    public void setParentId(int parentId) {
        this.parentId = parentId;
    }
}
上一篇 利用Java反射机制获取实体对象所有属性及其对应值
下一篇 Android Bug调试工具推荐
目录
文章列表
1 Gitlab打开Project报404解决
Gitlab打开Project报404解决
2
Executors提供四种线程池
Executors提供四种线程池
3
Python 3.8下载安装pycrypto报错解决
Python 3.8下载安装pycrypto报错解决
4
Prometheus + Grafana 监控 Spring Cloud 应用
Prometheus + Grafana 监控 Spring Cloud 应用
5
ElasticSearch 7 搜索(7)范围查询
ElasticSearch 7 搜索(7)范围查询
最新评论
一位WordPress评论者
一位WordPress评论者
2月12日
您好,这是一条评论。若需要审核、编辑或删除评论,请访问仪表盘的评论界面。评论者头像来自 Gravatar。