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

  • 相关阅读:
    二分图之最小边覆盖(poj3020)
    第一章:计算机网络概述
    X Window 简单的新手教程
    SharePoint Permission Analyzer 权限分析仪
    《源创新》:破坏性创新换了个说法,有陷入锤子钉子模式的嫌疑,书中的案例可以看一看。
    《金融可以颠覆历史》:隐藏在历史事件背后的金融制度发展历程
    转发:三伏天话“三伏贴”
    《浪潮之巅》(第2版):精彩的IT商战史
    《史玉柱自述》:管理者要谦虚,好的经营策略是试出来的
    《生活中的经济学》:主张让市场去解决生活中的问题,离中国的现实有点远
  • 原文地址:https://www.cnblogs.com/toSeeMyDream/p/9785869.html
Copyright © 2011-2022 走看看