使用fastJson踩坑记录汇总

news/2024/11/8 5:52:16/

坑1-属性方法命名问题

问题表象

在使用fastjson工具把一个领域DTO对象转为 JSON 字符串,结果导致了非属性的 get 方法被调用了,此时延时加载所需的 bean 还没有注入,导致出现空指针。

场景复现

先构建一个一个学生类,里面只有一个属性,name

public class Student {private String name;public String getValue() {return "testGetValue";}public String setName(String name) {this.name = name;}
}

用fastjson解析

public static void main(String[] args) {Student student = new Student();student.setName("zhansan");System.out.println(JSON.toJSONString(student));
}

结果将会打印 :

{“name”:“zhansan”,“value”:“testGetValue”}

问题根因

Fastjson 在序列化时会检查类的方法,并将符合一定规则的方法作为属性处理。具体规则是方法名以 get 或 is 开头,并且满足 Java Bean 的命名规范,Fastjson 将其识别为属性,并调用方法获取属性的值。

坑2-后面有空补充

问题表象

场景复现

问题根因


http://www.ppmy.cn/news/615563.html

相关文章

举例说明什么是卷积计算

卷积计算是一种数学运算,主要用于信号处理、图像处理等领域。它涉及到两个函数(通常称为信号和核)的互相关运算。在图像处理中,卷积计算通常用于实现图像的平滑、锐化、边缘检测等操作。 以图像处理为例,我们可以用一个…

CSS 苹方字体

转自:https://www.jianshu.com/p/bc9f57a645bd

自然语言处理(概念)

1、 RNN模型简介 1.2传统RNN模型 2、LSTM模型 3、GRU模型 5、注意力机制 6、人名分类器 7 、BERT 8、Transformer 的结构是什么样子的? 各个子模块有什么作用? 8.1 Encoder模块 8.2 Decoder模块 8.3 Transformer 结构中的Decoder端具体输入是什么&#…

CSS滚动艺术字体

CSS布局 全局: * {margin: 0;padding: 0;} 字体调整: h1 {font-size: 18px;text-align: center;margin-top: 30%;background-image: -webkit-linear-gradient(left, blue,pink 10%, #65c0e0 20%, skyblue 30%,blue 40%, MediumVioletRed 50%, Purple…

Cocos Store 80款方正字体对味开发者:2元“静蕾体”受追捧

触控Cocos Store精准解读开发者群体所需,贴心打造“游戏开发工具素材军火库”,除已上架12万海量素材,还展开了与方正字体的战略合作,掀开字体2元时代帷幕。值得一提的是,首批上架的80款方正非商业版字体中,…

编码字体与阅读字体推荐

编码字体 编码字体首要原则:等宽,等宽,还是 TMD 等宽! JetBrains Mono Hack Source Code Pro Fira Mono Consolas 保底字体,基本上 Windows 电脑都有预装。 阅读字体 看多了黑体,其实有衬线的宋体才能…

签名字体怎么练

导读:今天来给大家分享【签名字体怎么练】技法来源于网络,只是分享学习一下。感谢大家的支持,如果,你在签名字体上有什么不懂的可以来询问我的。谢谢大家的浏览! 签名字体怎么练 1、签名也是字体造型的再创作&#x…

网页字体集锦

1、华为官网: font-family:"Manrope",Arial,Helvetica Neue,Helvetica,sans-serif; manrope字体各方面都表现良好 2、苹果官网: font-family:"SF Pro Text","Myriad Set Pro","SF Pro Icons…