fastjson jsonobject 判断key是否存在_fastjson的这些坑,你误入了没?

背景:最近 fastjson 被爆出新的远程代码执行漏洞之后,赶紧督促项目组快马加鞭去修改(吐槽:真改不动,架不住项目既多又老),鉴于项目不同,依赖的 fastjson 版本也不同,本次着重谈 fastjson 1.2.16 版本遇到的哪些问题?

兼容性:低版本没问题,高版本抛异常

一、抛问题。

摘取部分代码片段,稍加改造如下。

import com.alibaba.fastjson.JSONArray;import com.alibaba.fastjson.JSONObject;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;/** * fastjson 坑啊! * * @author 一猿小讲 */public class T {    public static void main(String[] args) {        JSONObject retJson = new JSONObject();        retJson.put("retCode", "0000");        retJson.put("retMsg", "Pay Succ");        List> retList = new ArrayList>();        Map retMap = new HashMap();        retMap.put("orderId", "O010000088888");        retMap.put("payerName", "张三");        retList.add(retMap);        retJson.put("retList", retList);        if (retJson.containsKey("retList")) {            JSONArray jsonArray = retJson.getJSONArray("retList");            for (Object object : jsonArray) {                JSONObject orderObject = (JSONObject) object;                System.out.println("假装要执行的处理===>" + orderObject);            }        }    }}

引入依赖(低版本):

com.alibaba    fastjson    1.2.16

代码跑起来(真爽,飞一般的感觉):

假装要执行的处理===>{"orderId":"O010000088888","payerName":"张三"}

此时,把 fastjson 升级成高版本:

com.alibaba    fastjson    1.2.70

代码跑起来(浪奔浪流ÿ

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值