@JSONField(name=xx)、@JsonProperty(value=xx)和@SerializedName的使用

@JSONField(name=xx)

作用

  1. 作用在get方法上,在序列化的时候(把对象转换为JSON串的时候),可以重新命名成指定的JSON数据的key名称;
  2. 作用在set方法上,在反序列化的时候(解析JSON转为对象的时候),可以把数据绑定到对应的JAVA实体类属性上;
  3. 作用在字段上,会在序列化和反序列的时候,把数据都绑定到对应的字段上。

注意

  1. 如果是使用JSON工具,上面的作用只能使用下面对应的方法;
    **get:
    **com.alibaba.fastjson.JSON#toJSONString(java.lang.Object)
    com.alibaba.fastjson.JSON#toJSONString(java.lang.Object)
    set:
    com.alibaba.fastjson.JSON#parseObject(java.lang.String, java.lang.Class)
  2. 不能用于接收前端传参,绑定指定名称到到对应的JAVA实体类属性上。

@JsonProperty(value=xx)

作用

  1. 可以加在字段和set方法上,在反序列化的时候(解析JSON转为对象的时候),可以把数据绑定到对应的JAVA实体类属性上,相当于@JSONField(name=xx)作用在set方法上;

注意

  1. 如果是使用JSON工具,上面的作用只能使用下面对应的方法;
    set:
    com.alibaba.fastjson.JSON#parseObject(java.lang.String, java.lang.Class)
  2. 可以用于接收前端传参,绑定指定名称到到对应的JAVA实体类属性上。

@SerializedName(value=xx)

作用

  1. 可以加在字段和set方法上,在反序列化的时候(解析JSON转为对象的时候),可以把数据绑定到对应的JAVA实体类属性上,相当于@JSONField(name=xx)作用在set方法上。

注意

  1. 如果是使用JSON工具,上面的作用只能使用下面对应的方法;
    set:
    com.alibaba.fastjson.JSON#parseObject(java.lang.String, java.lang.Class)
  2. 不能用于接收前端传参,绑定指定名称到到对应的JAVA实体类属性上。
posted @ 2024-09-13 08:33  付聪  阅读(251)  评论(0)    收藏  举报