有时候json串里面我们并不知道它的key是什么,乃至都不知道有多少key,这个时候我们又想打印出所有的key-value对,因此就须要用到迭代输出。
正文:
采取迭代的办法,遍历JSON中所有的KEY。
在网上搜索会创造很多例子,但是都不写是详细是哪个包里面的类,以是引用起来就有点费解。这里我们抽两个例子来遍历:
Json串为:
{
\"大众b3800107689d7309dc1fc0ae7e22b27d329986dc1d1da11a2efff4b8168ee2fa.png\公众: \"大众申请人身份证.png\公众,
\公众5f4d3ef75df1e46af8231e37eaac7747ab5f77e4e20431487707d0ecf10d248a.png\"大众: \公众申请人事情证明.png\"大众,
\"大众477b7c7fde5e2d87386fd400c80a60f3dd696af3d53b2a2d64e228ba0914a78e.png\"大众: \"大众车辆登记本.png\"大众,
\"大众032795fc5ab793c1862038a3d9164e5e2ce9147071501f80063c47f67e799394.jpg\"大众: \"大众申请人征信授权书.jpg\"大众
}
}
方法一:用net.sf.json.JSONObject遍历
第一步导入maven包依赖:
<dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</artifactId> <version>2.4</version></dependency>
第二步main办法测试:
public static void main(String[]args){ String oriJsonStr=\"大众{\n\"大众 + \公众 \\"大众files\\"大众: {\n\公众 + \公众 \\公众b3800107689d7309dc1fc0ae7e22b27d329986dc1d1da11a2efff4b8168ee2fa.png\\公众: \\"大众申请人身份证.png\\"大众,\n\公众 + \公众 \\公众5f4d3ef75df1e46af8231e37eaac7747ab5f77e4e20431487707d0ecf10d248a.png\\"大众: \\"大众申请人事情证明.png\\"大众,\n\"大众 + \"大众 \\"大众477b7c7fde5e2d87386fd400c80a60f3dd696af3d53b2a2d64e228ba0914a78e.png\\"大众: \\公众车辆登记本.png\\公众,\n\"大众 + \"大众 \\公众032795fc5ab793c1862038a3d9164e5e2ce9147071501f80063c47f67e799394.jpg\\"大众: \\"大众申请人征信授权书.jpg\\"大众\n\公众 + \公众 }\n\公众 + \"大众}\"大众; JSONObject maleArray = JSONObject.fromObject(oriJsonStr); JSONObject files = maleArray.getJSONObject(\公众files\"大众); Iterator<String> male_Iterator = files.keys(); male_Iterator.forEachRemaining(key-> System.out.println(key+\公众-\公众+files.get(key)));}
输出结果图一:
net.sf.json.JSONObject
方法二:用com.alibaba.fastjson.JSONObject
第一步导入maven包依赖:
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.51</version></dependency>
第二步main办法测试:
public static void main(String[]args){ String s=\公众{\n\"大众 + \"大众 \\"大众files\\公众: {\n\公众 + \"大众 \\"大众b3800107689d7309dc1fc0ae7e22b27d329986dc1d1da11a2efff4b8168ee2fa.png\\"大众: \\"大众申请人身份证.png\\公众,\n\"大众 + \"大众 \\"大众5f4d3ef75df1e46af8231e37eaac7747ab5f77e4e20431487707d0ecf10d248a.png\\"大众: \\"大众申请人事情证明.png\\"大众,\n\"大众 + \"大众 \\"大众477b7c7fde5e2d87386fd400c80a60f3dd696af3d53b2a2d64e228ba0914a78e.png\\公众: \\"大众车辆登记本.png\\"大众,\n\"大众 + \公众 \\"大众032795fc5ab793c1862038a3d9164e5e2ce9147071501f80063c47f67e799394.jpg\\公众: \\"大众申请人征信授权书.jpg\\"大众\n\"大众 + \"大众 }\n\"大众 + \"大众}\"大众; JSONObject jsonObject = JSONObject.parseObject(s); JSONObject files1 = jsonObject.getJSONObject(\公众files\公众); Set<String> strings = files1.keySet(); strings.forEach(key-> System.err.println(key+\"大众-\"大众+files1.get(key))); }
输出结果图二:
com.alibaba.fastjson.JSONObject
还有很多JSONObject的包,都是一模一样,希望大家多多磋商,所谓艺多不压身,多学点总是好的,坚持学习,每天进步一点点。