问题背景
由于我司的项目部署阿里云上,最近一天收到阿里云的的漏洞提醒!邮件。检查项目后发现,确实存在低版本的fastjson
。考虑到项目安全性,项目组决定升级fastjson
包。
版本
fastjson
:1.2.44
升级至1.2.68
问题
版本升级后,发现原项目中的某些业务报错,跟踪后发现现象如下:
问题1
JSONArray
中存储的对象类型发生了变化,在对比两个版本的结果:
1.2.44
版本的存储对象的类型为:JSONObject
1.2.68
版本的存储对象的类型为:LinkedHashMap
后继续跟踪并测试发现:
String jsonStr = "{\"test1\":{\"test11\":\"test11\"}," +
"\"test2\":[{\"test21\":\"test21\",\"test22\":\"test22\"}]}";
JSONObject json = JSONObject.parseObject(jsonStr);
JSONArray dataList = json.getJSONArray("test2");
for (Object obj : dataList) {
System.out