1、需求
后台接口测试中,http request的response中data是json结构,数据较复杂,嵌套多层,类似于:
{
key1 : value1,
key2 : value2,
.............
keyT: [
{
key11: value11,
key12: value12,
......
keyA: value1A,
......
keyB: value1B,
.......
keyN: value1N
},
{
key11: value21,
key12: value22,
......
keyA: value2A,
......
keyB: value2B,
.......
keyN: value2N
},
.........
keyM: valueM,
}
目的:希望从层层嵌套的json串中,将里面的json数组中多组keyA,keyB对应的value抓取到,并成组配对打印到文件中。类似于:
keyA:value1A keyB:value1B
keyA:value2A keyB:value2B
..........
keyA:valueKA keyB:valueKB
2、解题思路
网上Google了一把这类json嵌套解析的方法,有些源码实现较复杂,有些只是提供个思路,都不是很好。算了,自己来写吧。
最笨的方法是想抓什么数据,直接检索(类似于linux的grep的思路),但这种方式扩展性差,并且在json串较复杂时(如部分为空),检索结果容易有偏差。
为减少代码量,考虑用
递归思路来做。
代码如下:
package testJa;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.util.Iterator;
import org.json.JS