首页 > 编程知识 正文

序列化和json区别(json反序列化漏洞)

时间:2023-05-03 18:54:36 阅读:91850 作者:1610

今天是wzdzdj自学Java的第167天。

感谢您的观看。 谢谢你。

学习计划如下。

将数据导入索引库中的过程使用的是工具类JsonUtils。 在这里总结说明。 我从很久以前开始学习json,一直在使用。 相当于前端和后端之间数据传输的介质。

为了便于数据之间的传输,数据库中存储的数据可能会设置为json格式的字符串。

另一方面,数据在Java中的表现方法无非是对象,所以Json字符串的序列化和反序列化有关。

一、Json的序列化

JsonUtils工具类非常强大,共有5种方法,可以完成json字符串的各种转换。

其中包括核心类ObjectMapper,以下各种方法基于该类实现。

以下mapper是对象映射器类的对象。

json的序列化

toString ()方法可以将任何对象转换为json格式的字符串。

第一个if条件语句判断对象是否为空。 第二个if条件语句确定对象类型是否为字符串,mapper调用writeValueAsString ()方法将对象转换为json字符串。 Java的典型对象、list集合和map集合可以直接使用此方法实现直接转换。

是的,写代码后做测试。

自定义用户类。 有两个属性: name和age。 在此,我们将创建两个对象进行测试。

调用toString ()方法时,对象将转换为json格式的字符串,即上述的userOneJosn。

同样,也可以将List集合转换为json格式的字符串,即上述的userListJson。

关于map集合也一样,所以省略说明。

以上实现了json的序列化。

如果有

二、Json的反序列化一

序列化,当然也有反序列化。

json的反序列化:转换为对象

toBean ) )方法将json字符串转换为对象。

使用mapper调用读值方法。 参数有以下两个。

json :也就是json字符串。 t类:也就是要转换为对象的对应类对象。 json的反序列化:转换为List

oList ) )方法将json字符串转换为list集合。

使用mapper调用readValue方法并调用参数:

json :同样是json字符串。 mapper.getT

ypeFactory().constructListType()说明集合的泛型。List.class:也就是List集合的Class对象。eClass也就是要转换成的集合中的对象对应的Class对象。

做个测试:

反序列化等于是将序列化的过程反过来了。

上述两个json字符串都是序列化测试中的结果。

调用toBean()方法可以将json字符串转换成一个对象。调用toList()方法可以将json字符串转换成一个List集合。

注意:如果json字符串是一个集合时,也就是上述的listJson,调用toBean()方法会报错。

三、Json的反序列化二

除了普通对象和List集合,还有Map集合和一个通用方法。

④json的反序列化:转换成Map

toMap()方法转换json字符串成Map集合。

使用mapper调用readValue()方法,注意和toList()方法中的区别:

constructListType()对应的是List集合。constructMapType()对应的是Map集合。

Map集合中要说明key和value对应的Class对象。

⑤json的反序列化通用版

对于该方法的理解,上述②③④能实现的都可以通过它实现。

观察其参数,第一个参数都是json字符串,主要在于第2个参数的不同。

其实②③④就相当于在该方法中做了一个垂直细分:

②中toBean方法第二个参数直接说明了对象的Class对象。③中toList方法第二个参数通过constructListType()方法来说明。④中toMap方法第二个参数通过constructMapType()方法来说明。

做一个测试:

调用toMap()方法将mapJson反序列化成一个map,也就是一个键值对,上述中key为1,value为一个User对象。

调用nativeRead()方法将json字符串转换成对应的对象。

上述例子中是一个比较复杂的json字符串,一个map集合,key为字符串,value为一个包含User对象的list集合。

最后

行有不得反求诸己,我是@wzdzdj

一个白天上班晚上学习的95后沪漂,不为其它,只为学会自律做好自己,也愿我的每日打卡能给你带来勇气,欢迎点赞关注和评论。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。