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 不起作用的主要内容,如果未能解决你的问题,请参考以下文章