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
}
模板字段说明
| 字段 | 类型 | 说明 |
|---|---|---|
code | number | 响应状态码,200 表示成功 |
message | string | 提示信息 |
moreMessage | string | 补充提示信息 |
data | any | 返回的数据体 |
total | number | 数据总数(分页场景) |
duration | number | 提示展示时 长 |
popType | number | 前端提示类型,0 默认、1 消息、2 通知 |
placement | number | 通知位置 |
redirectUrl | string | 跳转地址 |
traceId | string | 链路追踪 id |
使用场景
- 直接返回固定的成功 / 失败结构
- 自定义接口的返回格式
- 与前端约定特殊响应字段
下一步
属性明细
以下内容面向技术实现与 AI 检索,说明 JSON 脚本组件的节点元数据。
节点元数据
JSON 脚本组件由 FlowCmpType.JsonScript 标识:
| 属性名 | 类型 | 含义 | 取值/存储 值 |
|---|---|---|---|
type | string | 组件类型 | 固定为 "JsonScript" |
Script | string(JSON) | 响应 JSON 内容 | 缺省为系统 JSON 模板 |
IsFinalResult | string(bool) | 是否输出到最终结果 | "true" / "false" |
order | string | 同级排序 | 例:"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 键)
| 键 | 读取方式 | 含义 |
|---|---|---|
Script | meta.SafeGet("Script") | JSON 文本 |
IsFinalResult | meta.SafeGet("IsFinalResult") | "true" 时解析后的 JSON 写入 context.Result |
IsDisabled | meta.SafeGet("IsDisabled") == "true" | 为 true 时跳过本组件 |
执行步骤
- 校验期
_VerifyAsync仅调用VerifyNextAsync,不校验脚本内容。 - 执行期
_ExecuteAsync:读取Script,将 JSON 文本原样写入context.CmpResult = scriptText。 - 当
meta.SafeGet("IsFinalResult")为"true"时:Script非空:context.Result = JsonDocument.Parse(scriptText);Script为空:context.Result = null。
- 调用
ExecuteNextAsync继续下游。
输出与上下文
| 字段 | 说明 |
|---|---|
context.CmpResult | JSON 文本(string),供下游组件读取 |
context.Result | 仅 IsFinalResult = "true" 时为 JsonDocument |
权限、安全与限制
- 无权限校验,也不做危险代码检查。
- 组件不对 JSON 做结构或 Schema 校验,按原文本使用。
异常与校验
- 校验期不做内容校验。
IsFinalResult = "true"且Script为非法 JSON 时,JsonDocument.Parse抛出异常,导致组件执行失败。