Skip to main content

JSON脚本组件

JSON脚本组件(JsonScript)用于直接配置接口的响应结构,返回一段自定义的 JSON。

概述​

JSON脚本组件不执行数据处理,而是把预先写好的 JSON 作为响应返回,用于直接控制接口输出的结构。缺省提供一段标准的响应模板,包含 code、message、data 等字段,可按需修改。

配置项​

配置项说明
JSON 脚本响应 JSON 内容,缺省为系统模板;通过代码编辑器弹窗编辑
输出到最终结果开启后该组件结果作为接口返回值

缺省模板​

{
"data": null,
"total": 0,
"code": 200,
"message": "操作成功",
"moreMessage": null,
"duration": 0,
"popType": 0,
"placement": 2,
"redirectUrl": null,
"traceId": null
}

模板字段说明​

字段类型说明
codenumber响应状态码,200 表示成功
messagestring提示信息
moreMessagestring补充提示信息
dataany返回的数据体
totalnumber数据总数(分页场景)
durationnumber提示展示时长
popTypenumber前端提示类型,0 默认、1 消息、2 通知
placementnumber通知位置
redirectUrlstring跳转地址
traceIdstring链路追踪 id

使用场景​

  • 直接返回固定的成功 / 失败结构
  • 自定义接口的返回格式
  • 与前端约定特殊响应字段

下一步​

属性明细​

以下内容面向技术实现与 AI 检索,说明 JSON 脚本组件的节点元数据。

节点元数据​

JSON 脚本组件由 FlowCmpType.JsonScript 标识:

属性名类型含义取值/存储值
typestring组件类型固定为 "JsonScript"
Scriptstring(JSON)响应 JSON 内容缺省为系统 JSON 模板
IsFinalResultstring(bool)是否输出到最终结果"true" / "false"
orderstring同级排序例:"2"

元数据存储示例​

{
"ID": "json1",
"type": "JsonScript",
"Script": "{\n \"code\": 200,\n \"message\": \"操作成功\",\n \"data\": null\n}",
"IsFinalResult": "true",
"order": "2"
}

服务端执行逻辑​

JSON 脚本组件由 JsonScriptComponentManager(继承 InterfaceComponentManagerBase)实现,组件类型为 FlowComponentTypeEnum.JsonScript。

节点 meta 中的所有值均以字符串存储,服务端统一通过 SafeGet("Key") 读取字符串。

执行时机与场景​

组件不执行任何数据处理逻辑,只把预先配置的 JSON 文本透传或解析为响应结果,用于直接控制接口输出结构。

输入参数(meta 键)​

键读取方式含义
Scriptmeta.SafeGet("Script")JSON 文本
IsFinalResultmeta.SafeGet("IsFinalResult")"true" 时解析后的 JSON 写入 context.Result
IsDisabledmeta.SafeGet("IsDisabled") == "true"为 true 时跳过本组件

执行步骤​

  1. 校验期 _VerifyAsync 仅调用 VerifyNextAsync,不校验脚本内容。
  2. 执行期 _ExecuteAsync:读取 Script,将 JSON 文本原样写入 context.CmpResult = scriptText。
  3. 当 meta.SafeGet("IsFinalResult") 为 "true" 时:
    • Script 非空:context.Result = JsonDocument.Parse(scriptText);
    • Script 为空:context.Result = null。
  4. 调用 ExecuteNextAsync 继续下游。

输出与上下文​

字段说明
context.CmpResultJSON 文本(string),供下游组件读取
context.Result仅 IsFinalResult = "true" 时为 JsonDocument

权限、安全与限制​

  • 无权限校验,也不做危险代码检查。
  • 组件不对 JSON 做结构或 Schema 校验,按原文本使用。

异常与校验​

  • 校验期不做内容校验。
  • IsFinalResult = "true" 且 Script 为非法 JSON 时,JsonDocument.Parse 抛出异常,导致组件执行失败。