跳转到内容

Table JSON Parse 步骤

读取包含 JSON 文本的列,并将其展开为输出行,文档中找到的每个值对应一行。它与 Table XML Parse 相对应,也是 Alteryx JSON Parse 工具在 PlaidCloud 中的等效步骤。

当上游系统在单个列中提供 JSON 负载,而您需要将其内容作为普通的行和列时,请使用它。

嵌套 JSON{“id”: 1,“user”: { “name”:“Ann” },“tags”: [“a”,“b”]}解析扁平列iduser.nametags1Anna, b
Table JSON Parse 将嵌套 JSON 展平为列:嵌套对象变为点分隔路径(user.name),数组会被展开,因此下游步骤只需处理普通的行和列。

包含要解析的 JSON 文本的列。

  • Name and value only(默认):每个输出行包含 JSON_Name 和 JSON_ValueString。最简单,当下游将所有值都视为文本时已足够。
  • Typed values:关闭单字段选项,即可同时添加特定类型的值列,使数字和布尔值以数字和布尔值的形式到达,而不是字符串。

默认关闭。启用后,会在每个值行上重复输入记录的其他列,使解析出的值与其来源记录保持联接,无需单独的联接步骤。

输出(json_layout)用于选择不同的输出形态。以下每种布局都保持每个输入行对应一个输出行:

  • 宽表:每个键路径一列(wide):输入列(除非包含 JSON 字段,否则不含该字段),加上每个点分隔键路径一个文本列;文档中缺少该路径时为 NULL。
  • 每个 JSONPath 查询一列(paths):输入列加上每个 JSONPath 查询一列。在 JSONPath 查询(json_paths)中列出这些查询,每个查询包含 列、JSONPath、类型 和 多个匹配项 设置(target、path、dtype、multi):path 是 JSONPath(名称、索引、通配符、深度扫描、切片、联合和筛选器),dtype 为 text、integer、bigint、double、boolean 或 json,multi 为空表示取第一个匹配项(无匹配时为 NULL),list 表示将所有匹配项作为列表值,paths 表示匹配项的路径。来自表的查询(json_dictionary)可以替代该列表,从表的行中读取查询:{source, path, type, output} 指明该表以及其中保存各路径、类型和输出列名称的列。
  • KNIME JSON to Table 生成的列(table):输入列加上 KNIME 的 JSON to Table 节点根据文档生成的列。由 JSON 转表 选项(json_table)设置,首先是 按 JSON 路径命名列(paths)、用于连接路径片段的 路径分隔符(separator,默认为 .)、数组(arrays,取值为 GenerateCollectionCells、GenerateColumns 或 KeepAllArrayAsJsonArray)、要展开的级别(levels,0 表示全部),以及 省略已展开的对象(omit_objects,默认为 true),用于省略对象值。

使用 JSONPath 或 JSON to Table 布局时,启用 在输出中省略 JSON 字段(json_remove_source)可从结果中删除 JSON 字段。