跳到主要内容

提取JSON内容

从 JSON 文本或已有的 JToken 里按路径取出值。一次最多 5 条路径;要取更多,把 根对象 交给下一步再提取。

当前模块定义

sys:jsonExtract文本处理Action
标准模块
输入 8 · 输出 7

输入参数

  • 输入dataText必填

    要从中提取内容的Json文本或JToken对象

    填写 输入或变量
  • 提取路径0p0Text可选
    填写 固定输入
  • 提取路径1p1Text可选
    填写 固定输入
  • 提取路径2p2Text可选
    填写 固定输入
  • 提取路径3p3Text可选
    填写 固定输入
  • 提取路径4p4Text可选
    填写 固定输入
  • 日期时间按照文本处理dateAsStringBoolean可选

    保留原有数据格式

    填写 固定输入默认 false
  • 失败后停止stopIfFailBoolean可选

    失败后是否停止动作

    填写 固定输入默认 true

输出参数

  • 是否成功isSuccessBoolean

    操作是否没有异常

  • 值0v0Any

    提取到的内容,和提取路径对应

  • 值1v1Any

    提取到的内容,和提取路径对应

  • 值2v2Any

    提取到的内容,和提取路径对应

  • 值3v3Any

    提取到的内容,和提取路径对应

  • 值4v4Any

    提取到的内容,和提取路径对应

  • 根对象rootTokenObject

    整个输入内容解析后获得的JToken对象。可用于后续使用。

概述

内部先用 JToken.SelectToken 取单个值,失败再试 SelectTokens 取列表。路径前加 list: 可强制按数组提取(1.30.14+)。

提取JSON内容

提取Json文本中的信息
输入
 
要从中提取内容的Json文本或JToken对象
提取路径0
 
提取路径1
 
提取路径2
 
提取路径3
 
提取路径4
 
是否成功
-- 选择变量 --
操作是否没有异常
值0
-- 选择变量 --
提取到的内容,和提取路径对应
值1
-- 选择变量 --
提取到的内容,和提取路径对应
值2
-- 选择变量 --
提取到的内容,和提取路径对应
值3
-- 选择变量 --
提取到的内容,和提取路径对应
值4
-- 选择变量 --
提取到的内容,和提取路径对应
根对象
-- 选择变量 --
整个输入内容解析后获得的JToken对象。可用于后续使用。

参数说明

输入:JSON 文本或 JToken。

提取路径0提取路径4:各对应一路输出。写法:

  • 点分层级:Manufacturers[0].Name
  • JSONPath:$..Products[*].Name
  • Key 里带点:['Dot.Name']

日期时间按照文本处理:保留原始日期文本,不当成日期对象。默认关闭。旧稿未写。

失败后停止:提取失败是否中止动作。默认开启。旧稿未写。

输出

  • 是否成功:有没有异常。旧稿未写。
  • 值0值4:与路径 0~4 对应。复杂类型会得到 JToken,请保证变量类型兼容。
  • 根对象:整段输入解析后的 JToken,可再提取或在表达式里用。

路径示例

要取的内容路径结果形态
CityCity文本
StoresStores列表
第一个厂商名Manufacturers[0].Name文本
所有产品名$..Products[*].Name列表
全部厂商Manufacturers对象列表,可用「每个」遍历
Key 含点['Dot.Name']文本

表达式里也可以:JsonConvert.DeserializeObject({json}) 得到 JToken,再 {token}["path1"]["path2"]

限制与排障

路径写错或类型对不上时,打开失败停止会中止动作;调试时可先关掉,看 是否成功 和空值。日期被解析坏了,勾选 日期时间按照文本处理

示例动作

步骤较多,用卡片打开原动作查看。

相关链接

更新历史

  • 1.4.18 复杂类型返回原始 JToken。

更新于