import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import java.util.ArrayList; import java.util.List; import org.junit.Test; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.TypeReference; public class GenericTypeTest { static class Foo<T>{ private T t; public T getT() { return t; } public void setT(T t) { this.t = t; } } @Test public void test_FirstWithClass() { Foo<List<Integer>> foo = new Foo<List<Integer>>(); List<Integer> list = new ArrayList<Integer>(); list.add(3); foo.setT(list); String v = JSON.toJSONString(foo); System.out.println(v); //parse with class Foo<?> rst = JSON.parseObject(v, foo.getClass()); assertTrue(rst.getT() instanceof JSONArray); //parse with TypeReference rst = JSON.parseObject(v,new TypeReference<Foo<List<Integer>>>(){}); assertTrue(rst.getT() instanceof JSONArray);//这里没有失败 } // @Test//此用例跟上边那个不能同时跑,要不然上边跑过之后下边就跑不通了 public void test_FirstWithTypeReference() { Foo<List<Integer>> foo = new Foo<List<Integer>>(); List<Integer> list = new ArrayList<Integer>(); list.add(3); foo.setT(list); String v = JSON.toJSONString(foo); System.out.println(v); //parse with TypeReference Foo<?> rst = JSON.parseObject(v,new TypeReference<Foo<List<Integer>>>(){}); assertFalse(rst.getT() instanceof JSONArray); } }
文字描述的话就是:
泛型类型反序列化调用paseObject的时候,第一次parseObject传Class,后边传TypeReference或者Type就解析不出泛型类型了,泛型对应的类型只能解析成JsonObject
版本1.2.4及以前,可以解析泛型的版本,应该都有。暂时可以通过含泛型的对象反序列化的时候,只通过传入Type或者TypeReference类型来实现。
相关推荐
[{"listA":[{"id":"fds","name":"张三"},{"id":"fds","name":"李四"}],"test":"432"}, {"listA":[{"id":"fds","name":"张三"},{"id":"fds","name":"李四"}],...数组里面封装数组的反序列化方法,通过两个bean,进行封装
FastjsonScan一个简单的Fastjson反序列化检测burp插件我在挖洞的时候看到一些json请求总是想要检测一下有没有Fastjson反序列化问题,本可以直接写一个脚本来跑或者搭配其他被动扫描器来验证,但是我太懒了,先不说...
主要介绍了SpringBoot Redis配置Fastjson进行序列化和反序列化实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
阿里巴巴发布关于Fastjson安全公告,在1.2.80及以下版本中存在反序列化风险。Fastjson是阿里巴巴的开源JSON解析库,可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到...
下面小编就为大家带来一篇springmvc fastjson 反序列化时间格式化方法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
JSON.parseObject 和 JSON.parse 这两个方法差不多, JSON.parseObject 的底层调用的还是在序列化时, FastJson
“本工具仅能在取得足够合法授权的企业安全建设中使用,在使用本工具过程中,您应确保自己所有行为符合当地的法律法规。 如您在使用本工具的过程中存在任何非法行为,您将自行承担所有后果,本工具所有开发者和所有...
Gson jackson fastjson LoganSquare 使用demo Gson jackson fastjson LoganSquare 使用demo
fastjson1.2.69反序列化远程代码执行漏洞介绍fastjson采用黑白名单的方法来防御反序列化漏洞,导致当黑客不断发掘新的反序列化Gadgets类时,在autoType关闭的情况下仍然可能可以绕过黑白名单防御机制,造成远程命令...
astjson采用黑白名单的方法来防御反序列化漏洞,导致当黑客不断发掘新的反序列化Gadgets类时,在autoType关闭的情况下仍然可能可以绕过黑白名单防御机制,造成远程命令执行漏洞。经研究,该漏洞利用门槛较低,可绕过...
1、fastjson将字符串反序列化为对象时,只会处理第一层,内部会序列化为JsonObject或者JsonArray,使用二级结构和三级结构时还要再次处理, 优点就是快,特别快。 2、jackson会将深层字符串一起序列化 一言不合就上...
fastjson、gson、jackson序列化和反序列化所用json文件
FastJson是阿里巴巴工程师开发的一个json处理工具包,包括“序列化”和“反序列化”两部分。支持Java Bean、集合、Map、日期等等。我这是用fastjson解析json串一个简单的案例。
本议题将从那些经典案例入手,分析攻击方和防御方的对抗过程。会从fastjson与weblogic的两个经典漏洞,带大家傲游反序列化的世界。 反序列化入门 Fastjson Weblogic 反序列化防御
fastjson-1.2.83.jar下载,...4. 支持泛型:fastjson支持泛型类型的解析和序列化。 5. 支持JSONPath:fastjson支持JSONPath表达式查询。 6. 支持注解:fastjson支持多种注解配置JSON序列化和反序列化。 7. 支持携带格式:f
配套博客 将JSON数据转换成JAVA的实体类
springboot 使用fastjson自定义序列化和反序列化
支持泛型,支持流处理超大文本,支持枚举,支持序列化和反序列化扩展。侵删 因为在GitHub网站上加载的速度太慢了,先放到这里。
protostuff fastjson gson 高性能序列化jar包
fastjson 反序列化 漏洞 POC