fastjson的@JSONField注解

@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



原文地址:https://www.cnblogs.com/qinxu/p/9413207.html

时间: 2024-10-28 17:13:14

fastjson的@JSONField注解的相关文章

fastjson简单使用demo,@JSONField注解属性字段上与set、get方法上。实体类toString(),实体类转json的区别;_下划线识别

一.demo代码 @JSONField注解属性字段上与set.get方法上.使用@Data注解(lombok插件安装最下方),对属性“笔名”[pseudonym]手动重写setter/getter方法 import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.annotation.JSONField; import lombok.Data; @Data

@JSONField注解的使用

FastJson中的注解@JSONField,一般作用在get/set方法上面,常用的使用场景有下面三个: 修改和json字符串的字段映射[name] 格式化数据[format] 过滤掉不需要序列化的字段[serialize] 一.修改字段映射使用方法: private Integer aid; // 实体类序列化为json字符串的时候,此类的aid字段,序列化为json中的testid字段 @JSONField(name="testid") public Integer getAid

fastjson使用-- @JSONField使用(转)

@JSONField可以配置到字段和方法上,那不同的配置有什么不同呢?下面我们就来看看具体配置到不同的方法上. 我们在创建实体类的时候,都要求属性必须创建get和set方法,否则fastjson将不会进行识别,下面我们看看把@JSONField配置到具体的get和set方法上 /** * @Title: getDate * @Description: 配置序列化的时候,日期序列化为startDate * @return Date */ @JSONField(name = "startDate&q

【技术累积】【点】【java】【27】@JSONField

@JSONField 该注解隶属于阿里fastjson,方便fastjson处理对象时的一些操作 源码 @Retention(RetentionPolicy.RUNTIME) @Target({ ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER }) public @interface JSONField { /** * config encode/decode ordinal * @since 1.1.42 * @retu

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 s

源码分析之FastJson全局配置日期格式导致@JSONField(format = "yyyy-MM-dd")注解失效

出现的问题 我全局配置的时间格式是:yyyy-MM-dd HH:mm:ss @JSONField注解配置的时间格式是:yyyy-MM-dd 最终的返回结果是:yyyy-MM-dd HH:mm:ss 问题:为啥不是以注解定义的时间格式为主呢? 先说答案,后面再分析: FastJson的全局配置日期格式会导致@JSONField注解失效 使用建议: 1.若全局配置了日期格式,就不要使用@JSONField注解 2.若想使用@JSONField注解,就不要全局配置日期格式 一.FastJson全局配置

spring boot (二):使用fastJson解析json数据

如果我们想在spring boot中使用第三方的json解析框架: 1)我们需要在pom.xml文件中引入第三方包的依赖; 2)实现方法: 方法1 需要在启动类中继承WebMvcConfigurerAdapter 类,并重写该类的configureMessageConverters方法. 方法2. 我们直接使用@Bean注入第三方的 解析框架. 1.引入fastJson的依赖库 <dependency> <groupId>com.alibaba</groupId> &l

FastJSON使用笔记

虽然使用FastJSON来生成JSON数据非常简单,但是我在实际使用过程中还是发现了一些值得注意的地方,比如说:之前写过的JQuery解析FastJSON生成的JSON数据会出现的错误 今天我要记录一下一些其他的注意点 将对象转化为json字符串时,如何过滤掉部分字段? 方法一: 在JavaBean对象对应字段前加注解,这样生成的json也不包含该字段 @JSONField(serialize=false) private String userName; 方法二: 在需要生成JSON的时候使用

fastjson对Date的处理

对日期的序列化: 一种方法是通过注解 Java代码   @JSONField (format="yyyy-MM-dd HH:mm:ss") public Date birthday; 另一种是通过SerializeConfig: Java代码   private static SerializeConfig mapping = new SerializeConfig(); private static String dateFormat; static { dateFormat = &