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

NiFi中ExecuteScript输出[object Object],无法显示完整API响应求助

问题原因

你看到[object Object]是因为NiFi的FlowFile属性仅支持存储字符串类型,而你直接将JSON解析后的对象(reasonId)存入myAttr,对象会被自动调用toString()方法,最终输出默认结果[object Object]。

解决方案1:修改ExecuteScript代码

将解析后的JSON对象转成字符串再存入属性,同时修正代码逻辑问题:

var reasonId;
try {
  // 解析SubReason1属性的JSON字符串
  reasonId = JSON.parse(flowFile.getAttribute('SubReason1'));
  
  if (flowFile != null) {
    if (reasonId !== undefined && reasonId !== null) {
      // 将对象转为JSON字符串后存入属性
      flowFile = session.putAttribute(flowFile, 'myAttr', JSON.stringify(reasonId));
      session.transfer(flowFile, REL_SUCCESS);
    } else {
      session.transfer(flowFile, REL_FAILURE);
    }
  }
} catch(e) {
  // 捕获JSON解析失败的异常,转入失败关系
  session.transfer(flowFile, REL_FAILURE);
}
解决方案2:使用EvaluateJsonPath处理器

情况1:API响应在FlowFile内容中

  1. 添加EvaluateJsonPath处理器,打开配置界面
  2. 在Destination下拉框选择flowfile-attribute
  3. 在Attributes to Set区域点击+号:
    • Attribute Name填写myAttr
    • Json Path Expression填写$(表示匹配整个JSON内容)
  4. 保存配置,将上游输出API响应的处理器连接到该处理器的success关系

情况2:API响应在属性(如SubReason1)中

先把属性内容转成FlowFile内容,再用EvaluateJsonPath处理:

  1. 添加ReplaceText处理器,配置:
    • Search Value填写.*
    • Replacement Value填写${SubReason1}
    • Replacement Strategy选择Replace entire text
  2. 将ReplaceText的success关系连接到EvaluateJsonPath,再按情况1的步骤配置EvaluateJsonPath即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 14:52:14