美文网首页
fastJson的@JSONField和jackson的@Jso

fastJson的@JSONField和jackson的@Jso

作者: 极客匠 | 来源:发表于2021-03-15 23:36 被阅读0次

    fastjson的@JSONField注解

    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>1.2.28</version>
    </dependency>
    

    @JSONField
    作用:在字段和方法上

    1.Field:@JSONField作用在Field时,name可以定义输入key的名字,反序列化的时 值不会赋值到属性上

    2.作用在setter和getter方法上

    /**
         * bean 转json 时会把bean中的name转换为project_name
         * 
         */
        @JSONField(name="project_name")
        public String getName() {
            return name;
        }
     /**
         * son 转bean 时会把json中的project_name值赋值给name
         * 
         */
        @JSONField(name="project_name")
        public void setName(String name) {
            name= name;
        }
    

    3.format :用在Date类型的字段来格式化时间格式

    4.布尔类型:serialize和deserialize

    在序列化的时候就不包含这个字段了。deserialize与之相反。但是有一点需要注意,当字段为final的时候注解放在字段上是不起作用的,这时候应该放在get或set方法上。

    @JSONField(serialize=false) 
    private String name
    

    5.serialzeFeatures 属性:fastjson默认的序列化规则是当字段的值为null的时候,是不会序列化这个字段

    {"name":"LiSi","age":18,"address":null}
    

    对象序列化下边的类,结果是:{"name":"LiSi","age":18}

    Student s =  new Student ();
    s.setName("LiSi");
    s.setAge(18);
    s.setAdderss(null);
    

    6.SerializerFeature枚举

    @JSONField(serialzeFeatures=SerializerFeature.WriteMapNullValue)
    private String address;
    

    当value的值为null的时候,依然会把它的值序列化出来: {"name":"LiSi","age":18,"address":null}

    当字段类型为int类型时,会序列化成 0,需要把类型改成Integer

    jackson的@jsonProperty使用

    1. 引入jar包

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

    2. jsonProperty介绍

    @JsonProperty 此注解用于属性上,作用是把该属性的名称序列化为另外一个名称,如把trueName属性序列化为name,@JsonProperty(value="name")。

    3. jackson的@JsonIgnore使用

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

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

    相关文章

      网友评论

          本文标题:fastJson的@JSONField和jackson的@Jso

          本文链接:https://www.haomeiwen.com/subject/wufrcltx.html