You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将JavaScript对象转为JSON对象用于Microsoft Automate的HTTP POST请求

解决方案

核心转换方法

JavaScript 内置的JSON.stringify()是将JS对象转换为可用于HTTP提交的JSON格式的最便捷方法,无额外依赖,所有现代运行环境(包括微软Automate的JS运行环境)都原生支持。

问题原因

  1. 空引用报错Object reference not set to an instance of an object大概率是workflowContext.actions.Compose.outputs取值为空,或者取值结构不符合预期,没有做前置校验直接调用方法导致。
  2. 你当前使用Object.values(threat)处理原对象,原对象结构为{"body": [xxx]},Object.values处理后会得到[[xxx]]的嵌套数组结构,和绝大多数API要求的入参结构不匹配,也会导致API侧解析时报错。

修复后的代码示例

情况1:API要求提交完整的带body的结构

// 前置空值校验,避免空引用报错
if (!workflowContext?.actions?.Compose?.outputs) {
  throw new Error("上游Compose步骤输出为空,请检查前置逻辑");
}
const threat = workflowContext.actions.Compose.outputs;
// 序列化后返回
return JSON.stringify(threat);

情况2:API只需要body字段内的数组内容

// 前置空值校验,同时确认body字段存在
if (!workflowContext?.actions?.Compose?.outputs?.body) {
  throw new Error("上游Compose输出无合法body字段,请检查结构");
}
const bodyList = workflowContext.actions.Compose.outputs.body;
// 序列化后返回
return JSON.stringify(bodyList);

额外注意事项

  • 调用HTTP POST动作时,需要确认请求头已添加Content-Type: application/json,否则API侧可能无法正常解析提交的JSON内容。
  • 如果你是将内联JS代码的输出直接传入Automate HTTP动作的body参数,也可以选择不手动调用JSON.stringify,直接返回结构正确的JS对象,Automate会自动完成序列化操作,但必须保证返回的结构和API要求完全一致。

内容的提问来源于stack exchange,提问作者jupiterone1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 09:24:07