加载中…
No Results
  • 开始使用
    • 欢迎使用GoInsight.AI
    • 快速入门
  • 知识百科
    • 关键概念
    • 知识库
    • LLM 选择指南
    • 数据安全
  • 轻聊机器人
    • 构建轻聊机器人
  • Insight Chat
    • 认识&了解如何使用Insight Chat
  • InsightFlow
    • InsightFlow介绍
    • InsightFlow类型
    • 服务与工具
      • 工具
      • 服务
      • 代理策略
    • 节点
      • 开始节点
      • 回复输出节点
      • 大模型节点
      • 知识库检索节点
      • 文档读取节点
      • 文档写入节点
      • HTTP 请求节点
      • 知识聚焦大模型节点
      • 代理节点
      • 进度更新节点
      • 工具调用节点
      • 条件跳转节点
      • 自然语义分类器节点
      • 分支聚合器节点
      • 多分支选择节点
      • 循环节点
      • 自动继续节点
      • 文本模板节点
      • 代码执行
      • JSON 变量提取器节点
      • 自然语义变量提取器节点
      • 变量赋值节点
      • 结束节点
      • 节点错误处理策略
    • 发布
      • 发布对话式工作流
      • 发布服务式工作流
      • 创建您的第一个工作流
    • 团队管理
      • 访问控制
      • 使用详情
首页 > 使用文档 > InsightFlow > 节点

JSON 变量提取器节点

定义

JSON 变量提取器节点可以从JSON格式的输入数据中提取指定的字段(值)。该节点能够解析复杂的JSON字符串,并将其作为结构化信息保存,供后续节点直接使用。

json variable extractor

快速入门 / 如何使用

节点配置详情:在 GoInsight.AI 中右键单击并选择“添加节点”以将“JSON 变量提取器”节点添加到工作流中。

add json node

1. 配置JSON 变量提取器节点的‘值’参数

json-value

“输入值”有两个选项:“变量”和“值”,说明如下:

选项 描述
变量 从工作流中的其他现有变量中检索JSON数据,适用于动态获取JSON数据的场景。
值 输入一个静态的JSON字符串作为数据源,适用于已知且固定的JSON数据。

如果“输入值”设置为“变量”,则需要在“设置变量值”中选择一个包含有效JSON格式数据的现有变量;若选择“值”,则需在文本框中输入JSON格式字符串。示例:

{
  "name": "Scout",
  "age": 18
}

2. 配置JSON 变量提取器节点的‘提取模式’和‘输出变量’参数

提取模式包括“提取字段”和“整体输出”,对应不同的输出变量格式,说明如下:

  • 提取字段: 允许从JSON数据中提取特定字段或嵌套字段值。
    点击“+”以指定一个或多个输出变量。每个输出变量必须包括“变量名称”、“目标字段”和“字段数据类型”。
  • 整体输出:将整个JSON数据作为单个输出,不提取任何字段。
    点击“+”以添加一个输出变量,必须包括“变量名称”和“字段数据类型”。
  • ‘字段数据类型’选项:
    输出字段的数据类型涵盖了JSON数据中常见的数据格式,允许用户根据需要提取和处理不同类型的数据。描述如下:
类型 说明
String
用于存储文本信息,如姓名、地址等。
Number
用于存储数值信息,可以是整数或浮点数,如年龄、价格等。
Bool
布尔类型,仅包含true和false两个值,常用于逻辑判断。
Array[Bool]
布尔类型的数组,用于存储多个布尔值,如任务完成状态集合。
Array[Number]
数字类型的数组,用于存储多个数字,如产品价格、数量等。
Array[Object]
对象类型的数组,用于存储复杂的数据结构,如用户信息列表。
Array[String]
字符串类型的数组,可以包含多个字符串,如多个产品名称、城市名称等。
Object
用于以键值对格式存储数据,如详细用户信息、订单详情等。

典型用例

假设“输入值”设置为“值”进行静态输入,或设置为“变量”从现有变量中选择,输入以下JSON:

{
  "name": "Scout",
  "age": 18
}

若要从JSON中提取字段name和age,并将其存储在不同变量中,请进行如下配置:

1. 提取模式:选择“提取字段”

输出变量1

  • 变量名称:userName
  • 目标字段:name
  • 字段数据类型:字符串

第二个输出变量

  • 变量名称:userAge
  • 目标字段:age
  • 字段数据类型:数字

您将获得以下两个输出变量:

{
  "Outputs": [
    {
      "Name": "userName",
      "Type": "string",
      "Value": "Scout"
    },
    {
      "Name": "userAge",
      "Type": "number",
      "Value": 18
    }
  ]
}

若希望将整个JSON对象视为单个字符串(例如在将JSON数据发送到内部和外部系统时),请进行如下配置:

2. 提取模式:选择“整体输出”

输出变量

  • 变量名称:userInfo
  • 字段数据类型:对象

您将获得以下输出变量:

{
  "Outputs": [
    {
      "Name": "userInfo",
      "Type": "object",
      "Value": {
        "age": 18,
        "name": "Scout"
      }
    }
  ]
}

3. 输入多级嵌套JSON结构。

例如,以下JSON是一种多级嵌套结构:

{
  "user": {
    "name": "Scout",
    "info": {
      "age": 18,
      "hobbies": ["read", "run"]
    }
  }
}

若要提取“age”字段,其目标字段路径为:$.user.info.age

  • 在这个 JSON 变量提取器节点示例中,
    $.user.info.age
    是一个通用路径表达式(JSONPath),用于指定多级嵌套JSON结构中要提取字段的位置。其组成说明如下:
符号/内容说明
‘$’符号 ‘$’表示JSON数据的根节点,是路径表达式的起点。无论JSON结构多复杂,路径表达式都以‘$’开头。
点(.)分隔字段 点(.)用于分隔JSON对象中的不同级别,每个点后接当前级别的字段名称。

JSON 变量提取器节点支持标准的JSON Path语法。如需使用更复杂的提取语法,请参考本文档。请注意,该节点仅支持使用双引号"..." 包裹的字符串值,不支持单引号'...'。 例如,在条件过滤场景[?(@.field == "value")]中,`value`必须用双引号括起来才能成功提取。

实际应用场景

json workflow

YouTube视频过滤工作流步骤:

  • 1. 在‘开始’节点中输入关键词。
  • 2. 在‘HTTP请求’节点中输入API信息,使用关键词搜索相应的YouTube视频。
  • 3. 由于HTTP响应可能包含大量视频信息,使用‘JSON 变量提取器’节点提取所需的标题、发布时间等信息,过滤掉其他冗余信息。

通过以上步骤,即可直接获取所需的YouTube视频的标题、发布时间等信息。

常见问题

Q1: 为什么提取结果为空或出现错误?
检查提取路径和文件中指定的数据类型是否正确。
Q2: 为什么 JSON 变量提取器节点的等待时间很长?

检查是否存在以下情况:

  • 一次性加载一个大的 JSON 文件(例如,100MB 以上的日志文件)。
  • 提取了过多冗余字段。
  • 重复解析相同的结构化数据。
更新于: Aug 26, 2025
上一篇 代码执行
下一篇 自然语义变量提取器节点
本文内容
  • 定义
  • 快速开始 / 如何使用
    • 值
    • 提取模式和输出变量
  • 典型用例
  • 实用场景案例
  • 常见问题
加载中…
No Results