1. 概述

JOSN解析是为了把JSON结构的数据解析成二维表结构输出,一般应用在下面两个场景:

  1. API 取数节点获取到的数据是JSON结构的数据,需要解析成二维表结构输出。
  2. 关系数据库表中有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:

通过列选择,只保留有用的字段

最终的结果