大家怎么还在搜这个问题啊, 这都是三年前的东西了, 只可以作为参考哈
可以直接使用 Gson 或者 fastjson
以下为原内容
测试 JSON 数据
- {
- "code": "200",
- "message": "测试数据",
- "data": {
- "imgs": [
- "http://7xw2my.com1.z0.glb.clouddn.com/qiniu/2016-7/0f0b37c0786efa955beec97b56fcda6f.jpg"
- ],
- "kk": [
- {
- "sdfdsf": "sss"
- },
- {
- "sdfdsf": "ssss"
- }
- ]
- }
- }
如果遇到这样的 JSON 格式的数据,你会怎样去解析?
每次碰到它都会很烦躁,所以写了下面的东西,一次性把它给弄出来,省的以后麻烦了。
首先要先创建相对于 JSON 数据的 Bean
Bean 的创建规则
如果属性对应的是一个字符串或数字,其修饰符使用 String —————– 如(public String code;)
如果属性对应的是一个 JSONArray,其修饰符使用 ArrayList, 这个里面的 Bean 要根据 JSONArray 里面的 JSONObject 进行编写。 —————– 如(public ArrayList kk;)
如果属性对应的是一个 JSONObject,其修饰符使用对象的类名—-如:(public static class MyData)
下面是按照上面的规则写好的一个 Bean
- public class Bean {
- private String code;
- private String message;
- private MyData data;
- public String getMessage() {
- return message;
- }
- public void setMessage(String message) {
- this.message = message;
- }
- public static class Data2 {
- private String sdfdsf;
- public String getSdfdsf() {
- return sdfdsf;
- }
- public void setSdfdsf(String sdfdsf) {
- this.sdfdsf = sdfdsf;
- }
- }
- public static class MyData {
- private ArrayList
kk; private String[] imgs; public ArrayList getKk() { return kk; } public void setKk(ArrayList kk) { this.kk = kk; } public String[] getImgs() { return imgs; } public void setImgs(String[] imgs) { this.imgs = imgs; } } public MyData getData() { return data; } public void setData(MyData data) { this.data = data; } public String getCode() { return code; } public void setCode(String code) { this.code = code; } }
解析的时候只要一句话:
- Bean s = (Bean) (SumileJson.parse(str, Bean.class));
解析完了,然后来看怎样获得所有的数据:
- String co = "{\"code\":\"200\",\"message\":\"测试数据\",\"data\":{\"imgs\":[\"http://7xw2my.com1.z0.glb.clouddn.com/qiniu/2016-7/0f0b37c0786efa955beec97b56fcda6f.jpg\"],\"kk\":[{\"sdfdsf\":\"sss\"},{\"sdfdsf\":\"ssss\"}]}}";
- YingYinBeans bean = (YingYinBeans) SumileJson.parse(co, YingYinBeans.class);
- System.out.println(bean.getData().getImgs()[0]);
- System.out.println(bean.getData().getKk().get(0).getSdfdsf());
程序输出的结果:
- http://7xw2my.com1.z0.glb.clouddn.com/qiniu/2016-7/0f0b37c0786efa955beec97b56fcda6f.jpg
- sss
注意:打包的时候,如果要混淆,记得把你的 Bean 也混淆了。因为是反射获取的内容。
开源地址转载请注明:热爱改变生活.cn » 多层嵌套 JSON 格式数据的快速解析
本博客只要没有注明“转”,那么均为原创。 转载请注明链接:sumile.cn » 多层嵌套 JSON 格式数据的快速解析