zoukankan      html  css  js  c++  java
  • fastJson注解@JSONField使用的一个实例

    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

  • 相关阅读:
    查看资源加载各环节具体耗时的利器
    WebStorm 格式化代码快捷键
    Android 如何使edittext默认失去焦点
    html语义化练习易牛课堂代码
    html网页练习豆瓣网
    HTML前期学习总结
    视频课阶段基础知识总结
    MQ、JMS 关系的理解
    Jvm参数配置
    Java泛型
  • 原文地址:https://www.cnblogs.com/xieegai/p/8242549.html
Copyright © 2011-2022 走看看