加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

fastJson注解@JSONField使用的一个实例

发布时间:2020-12-16 18:43:26 所属栏目:百科 来源:网络整理
导读:1.实体类 package jsonArrayjsonObject.cn; import java.io.Serializable; import java.util.Date; import com.alibaba.fastjson.annotation.JSONField; import com.alibaba.fastjson.serializer.SerializerFeature; public class User implements Serializa

1.实体类

package jsonArrayjsonObject.cn;

import java.io.Serializable;
import java.util.Date;
import com.alibaba.fastjson.annotation.JSONField;
import com.alibaba.fastjson.serializer.SerializerFeature;

public class User implements Serializable{

    private static final long serialVersionUID = 1L;

    // 配置序列化和反序列化的顺序,1.2.42以上版本支持。默认是以fieldName的字母序进行序列化的
    @JSONField(ordinal = 0)
    private Long id;
    
    @JSONField(ordinal = 1,name = "na")
    private String name;
    
    // 序列化与反序列化,默认均为true
    @JSONField(ordinal = 2,serialize = false,deserialize = false)
    private Integer age;
    
    // 默认序列化规则是当字段值为null时,是不序列化该字段的。当设置规则后,value为null时,依然会把它的值序列化出来
    @JSONField(ordinal = 3,serialzeFeatures = SerializerFeature.WriteMapNullValue)
    private String address;
    
    // 指定时间格式
    @JSONField(ordinal = 4,format = "yyyy-MM-dd  HH:mm:ss")
    private Date birthDate;

    public Long getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

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

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public Date getBirthDate() {
        return birthDate;
    }

    public void setBirthDate(Date birthDate) {
        this.birthDate = birthDate;
    }
    
}

2.测试类

package jsonArrayjsonObject.cn;

import java.util.Date;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SimplePropertyPreFilter;

public class Test {

    public static void main(String[] args) {
        test1();
    }
    
    // 测试SimplePropertyPreFilter 和 JsonField 注解
    static void test1(){
        User user = new User();
        user.setId(1L);
        user.setAge(12);
        user.setName("zhangsan");
        user.setBirthDate(new Date());
        
        SimplePropertyPreFilter filter = new SimplePropertyPreFilter(User.class,"na","address");
        
        String jsonString1 = JSON.toJSONString(user);
        String jsonString2 = JSON.toJSONString(user,filter);
        System.out.println(jsonString1);
        System.out.println(jsonString2);
    }
}

3.结果

{"id":1,"na":"zhangsan","address":null,"birthDate":"2018-01-08  14:24:28"}
{"na":"zhangsan","address":null}

?4.参考

关于@JsonField的name属性详解见:http://www.cnblogs.com/softidea/p/5681928.html

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读