1. 概述
JOSN解析是为了把JSON结构的数据解析成二维表结构输出,一般应用在下面两个场景:
- API 取数节点获取到的数据是JSON结构的数据,需要解析成二维表结构输出。
- 关系数据库表中有JSON结构的数据,需要解析成二维表结构输出。
2. 参数设置
JOSN解析,参数设置界面如下:
2.1 选择列
选择上游节点输出的列,该列必须为JSON结构的数据,不然就会解析失败,如果上游节点是API取数节点,输出列一般是responseContent
2.2 选择JSON节点
选择JSON节点就是设置输出字段跟JSONPath映射关系,解析的时候,根据这个映射关系把JSON结构数据转为二维表。
如图所示,左边是把JSON数据按照树状展示,方便选择,这里展现的JSON数据是上游节点第一行的数据。
勾选树节点后,点击生成路径,会把输出字段跟JSONPath 映射关系生成在右边列表中,同时可以进行修改,对JSONPath 的修改需要按照JSONPath 表达式规范进行修改。
JSONPath 表达式说明见JSONPath 表达式
2.3 解析后保留上游所有输出字段
- 未勾选:只保留解析后生成的新数据
- 勾选:上游所有输出字段跟解析后生成的新数据一起输出,如果解析后生成的新数据是多行,上游的数据也跟随着展开多行。
3. 多层级JSON数据解析为二维表结构
例如下面的JSON 样例
{ "store": { "book": [ { "category": "reference", "author": "Nigel Rees", "title": "Sayings of the Century", "price": 8.95 }, { "category": "fiction", "author": "Evelyn Waugh", "title": "Sword of Honour", "price": 12.99 }, { "category": "fiction", "author": "Herman Melville", "title": "Moby Dick", "isbn": "0-553-21311-3", "price": 8.99 }, { "category": "fiction", "author": "J. R. R. Tolkien", "title": "The Lord of the Rings", "isbn": "0-395-19395-8", "price": 22.99 } ], "bicycle": { "color": "red", "price": 19.95 } }, "expensive": 10 }
结构如下:
expensive 跟book 的子节点不在一个层级,expensive 是在更高的层级,希望最终解析出来的结果如下:
因为expensive 是在更高层级,如果低层级的数据是多行,高层级的会使用相同的数据随着展开多行
实现的步骤是通过多次JSON解析来实现,如下图
步骤1:
解析出expensive 跟expensive 同层级的store, store 是包含book 的子节点
解析后结果如下
因为store 不是叶子节点,所以把它当做JSON 输出
步骤2:
解析出book 子节点,这里是要选择store字段进行解析,配置如下
同时把expensive一并输出,要把expensive一并输出,就需要勾选 解析后保留上游所有输出字段。
解析后的结果
步骤3:
通过列选择,只保留有用的字段
最终的结果