Fastjson @JsonField 不起作用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Fastjson @JsonField 不起作用相关的知识,希望对你有一定的参考价值。

参考技术A 目录
一、JSONField知识点
二、解决方法
三、参考

1.序列化(JavaBean --> json)时配置到对应字段的get()方法上
2.反序列化(json --> JavaBean)时配置到对应字段的set()方法上

最后使用了Jackson的@JsonProperty解决

【1】 Springboot使用alibaba的fastJson,@JSONField不起作用的问题
【2】 github alibaba fastjson wiki JSONField
【3】 fastjson使用-- @JSONField使用(转)

fastjson简单使用demo,@JSONField注解属性字段上与setget方法上。实体类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
public class Stu {

    private String name;
    //下划线自动转换
    private String alias_name;

    //下划线自动转换
//    @JSONField(name="pen_name")
    private String penName;

    //实体类转为json,使用注解name值
    @JSONField(name="pen_name2")
    private String penName2;


    private String pseudonym;

    //实体类转为json,使用注解name值
    @JSONField(name="pseud")
    //不使用注解为属性名{"penName":"333","name":"1111","alias_name":"222","pen_name2":"444","pseudonym":"555"}
    public String getPseudonym() {
        return pseudonym;
    }

    //json转为实体类,使用注解name值
    @JSONField(name="pseudo")
    public void setPseudonym(String pseudonym) {
        this.pseudonym = pseudonym;
    }

    public static void main(String[] args) {
        String json = "{‘name‘:‘1111‘,‘aliasName‘:‘222‘,‘pen_name‘:‘333‘,‘pen_name2‘:‘444‘,‘pseudo‘:‘555‘}";
        Stu stu = JSON.parseObject(json, Stu.class);

        System.out.println(stu);
        System.out.println(JSONObject.toJSON(stu));
    }
}

 

二、main方法运行结果(控制台)

 

Stu(name=1111, alias_name=222, penName=333, penName2=444, pseudonym=555)
{"pseud":"555","penName":"333","name":"1111","alias_name":"222","pen_name2":"444"}

Process finished with exit code 0

 

三、@Data备注

idea安装lombok插件。

技术图片

以上是关于Fastjson @JsonField 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

fastjson的@JSONField注解

Fastjson @JsonField注解使用

@JSONField注解的使用

fastJson注解@JSONField使用的一个实例

FastJson中@JSONField注解使用

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