当前位置: 首页 > news >正文

fastjson/jackson对getter,setter和constructor的区分

在复现完fastjson1.2.24-1.2.80和jackson的所有相关漏洞后,总结的一些规则

以下均指对json的反序列化过程

setter

fastjson调用setter:遍历所有方法,找出所有满足setter要求的方法,再根据传入的json去反射调用

jackson调用setter:直接对传入的json中的字段拼接上set,然后去取setter

其实二者一样,但是fastjson不能调用私有和受保护setter,而jackson可以

getter

fastjson调用getter:

1、没有setter方法,有getter方法。且getter满足:参数长度为0,返回类型是属于Collection 或其子类、Map 或其子类、AtomicBoolean、AtomicInteger、AtomicLong的一种

2、fastjson>=1.2.36 可用$ref调用getter

解析函数里有JSON.toJSON,还会调用getter(parseObject)

jackson调用getter:

1、没有setter,有getter方法。可以直接反序列化调用

2、jackson-databind&core&annotations>=2.13.3,通过POJONode调用getter

构造方法

fastjson调用构造方法:

  • 如果存在无参构造方法,则将其作为构造方法
  • 否则使用参数数量最多且排在最前面的构造方法。

jackson调用构造方法:

  • 按照顺序,如果有参构造的参数能对应上,直接调用
http://www.lryc.cn/news/469765.html

相关文章:

  • 认识CSS语法
  • Linux运维篇-ansible的使用
  • 【MySQL】日志
  • 2024年CentOS镜像下载地址,包括CentOS官网、国内镜像下载,超详细也
  • STL学习-顺序容器-array数组
  • Spring Boot框架下的酒店住宿登记系统
  • electron展示下载进度条
  • Spark 基础操作
  • VoLTE 微案例:VoLTE 注册失败,I-CSCF 返回 403,HSS(UAR) 返回 5001
  • 智能财务 | 数据与融合,激发企业财务数智化转型思考
  • docker 下载netcore 镜像
  • Ajax:请求 响应
  • WebForms DataList 控件深入解析
  • 【有啥问啥】DINO:一种改进的去噪锚框的端到端目标检测器
  • 自由学习记录(15)
  • Docker 部署 JDK11 图文并茂简单易懂
  • Cisco ASAv虚拟防火墙
  • w~自动驾驶合集6
  • C/C++ H264文件解析
  • 【Windows】电脑端口明明没有进程占用但显示端口被占用(动态端口)
  • Redis 持久化 问题
  • vivado 配置
  • Java如何实现PDF转高质量图片
  • itemStyle.normal.label is deprecated, use label instead.
  • 如何在 Linux VPS 上保护 MySQL 和 MariaDB 数据库
  • CSS 样式 box-sizing: border-box; 用于控制元素的盒模型如何计算宽度和高度
  • 预训练 BERT 使用 Hugging Face 和 PyTorch 在 AMD GPU 上
  • 鸿蒙是必经之路
  • Java项目实战II基于微信小程序的马拉松报名系统(开发文档+数据库+源码)
  • 家用wifi的ip地址固定吗?换wifi就是换ip地址吗