<div id="navCategory"></div>
讯享网
如果我们接收到的是一个json字符串,我们该如何对该字符串进行解析?
- 方式一:使用实体类进行解析
- 方式二:使用map进行解析
使用的依赖jar包:
创建一个用于接收的实体类:使用json字符串中的那些字段,实体类的属性值一定要和JSON串中的对应
假设JSON字符串如下:
对应的实体类属性就应该定义成如下的样子:
代码示例:
运行结果:
PersonInfoDto{bornTime=Fri Sep 30 19:48:59 CST 2022, userName='AISMALL', sex='man', age=18}
运行结果:
personInfoDto1: PersonInfoDto{bornTime=Fri Sep 30 19:48:59 CST 2022, userName='null', sex='null', age=null}
personInfoDto2: PersonInfoDto{bornTime=Fri Sep 30 19:48:59 CST 2022, userName='AISMALL2', sex='null', age=null}
personInfoDto3: PersonInfoDto{bornTime=Fri Sep 30 19:48:59 CST 2022, userName='AISMALL', sex='man', age=18}
personInfoDto4: PersonInfoDto{bornTime=Fri Sep 30 19:48:59 CST 2022, userName='AISMALL', sex='man', age=18}
小结
- json串里面的key与实体类字段匹配几个就会赋值几个,不管该传有多长,只取匹配到的key的value给实体类赋值,匹配不上的赋值为null。
- json串中出现重复的字段,就会使用后者进行覆盖。
参考:使用map进行解析
运行结果:
前面已经介绍了:
运行结果:
{"age":18,"bornTime":85,"sex":"man","userName":"AISMALL"}
运行结果:
注意:
- Json对象和Json字符串的区别在于,里面有很多定义好的方法可以帮助我们根据Key取出Json对象中的值,后面我们也会演示几个JSONObject提供的方法。
运行结果:
{"test":"test","Result":[{"Detail1":"Detail1","Result1":"Result1"},{"Detail2":"Detail2","Result2":"Result2"},{"Detail3":"Detail3","Result3":"Result3"}]}
注意:json字符串数组,即String是JSONArray格式的字符串
运行结果:
{"Detail1":"Detail1","Result1":"Result1"}
{"Detail2":"Detail2","Result2":"Result2"}
{"Detail3":"Detail3","Result3":"Result3"}
运行结果:
jsonStr: [{"age":18,"sex":"man1","userName":"AISMALL1"},{"age":19,"sex":"man2","userName":"AISMALL2"}]
运行结果:
jsonStr: [{"age":18,"sex":"man1","userName":"AISMALL1"},{"age":19,"sex":"man2","userName":"AISMALL2"}]
personInfoDto: PersonInfoDto{bornTime=null, userName='AISMALL1', sex='man1', age=18}
personInfoDto: PersonInfoDto{bornTime=null, userName='AISMALL2', sex='man2', age=19}
JSONObject如下:
运行结果
[{"Detail1":"Detail1","Result1":"Result1"},{"Detail2":"Detail2","Result2":"Result2"},{"Detail3":"Detail3","Result3":"Result3"}]
运行结果:
更多方法可以去查看,的源码。
到此这篇关于Java如何将json字符串与实体类互相转换的文章就介绍到这了,更多相关json字符串与实体类互相转换内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/161901.html