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

JSON转换规则问题:Validator状态未按预期更新

Jolt转换规则错误排查与修复

问题说明

输入JSON结构如下:

[
  {
    "Validator": [
      {
        "name": "API_Automation_Client",
        "guid": "8013091c-6f2e-46c4-b406-b11a4b78c628",
        "status": "NOT PUBLISHED"
      },
      {
        "name": "HNCServerTest",
        "guid": "8a73c938-8687-4de2-9020-0a5bed37f91d",
        "status": "NOT PUBLISHED"
      },
      {
        "name": "Time",
        "guid": "Time",
        "status": "NOT PUBLISHED"
      },
      {
        "name": "SV-p1",
        "guid": "aa2a1f6a-165b-409b-978e-ee436d0ae81c",
        "status": "NOT PUBLISHED"
      }
    ],
    "selectedRelease": {},
    "Replay": [],
    "entity": "Validator",
    "publishedString": "SV-p1,Time,API_Automation_Client"
  }
]

需求是:若Validator元素的name存在于publishedString中,将其status设为"PUBLISHED",否则保持"NOT PUBLISHED"。原Jolt转换规则执行后,所有Validator的status均为"NOT PUBLISHED",不符合预期。

错误原因

原规则存在两个核心问题:

  • split函数参数顺序颠倒:Jolt的split函数语法为=split(<分隔符>, <目标字符串>),原规则中写成=split(@(2,publishedString), ','),将目标字符串与分隔符顺序搞反,导致无法正确拆分出已发布名称数组,后续contains判断永远返回false。
  • 多余的shift操作:输入JSON结构已经符合处理要求,无需额外复制结构,增加了不必要的复杂度。

修正后的Jolt规则

[
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "*": {
        "Validator": {
          "*": {
            "status": "=contains(=split(',', @(2,publishedString)), @(0,name)) ? 'PUBLISHED' : 'NOT PUBLISHED'"
          }
        }
      }
    }
  }
]

规则说明

  1. 移除了多余的shift操作,直接通过modify-overwrite-beta处理status字段。
  2. 修正split函数参数顺序:=split(',', @(2,publishedString))先传入分隔符',',再传入目标字符串publishedString,正确拆分出已发布名称数组。
  3. 通过contains函数判断当前Validator的name是否在拆分后的数组中,根据结果设置对应status。

验证结果

执行修正后的规则后,输出JSON完全符合预期:

[
  {
    "Validator": [
      {
        "name": "API_Automation_Client",
        "guid": "8013091c-6f2e-46c4-b406-b11a4b78c628",
        "status": "PUBLISHED"
      },
      {
        "name": "HNCServerTest",
        "guid": "8a73c938-8687-4de2-9020-0a5bed37f91d",
        "status": "NOT PUBLISHED"
      },
      {
        "name": "Time",
        "guid": "Time",
        "status": "PUBLISHED"
      },
      {
        "name": "SV-p1",
        "guid": "aa2a1f6a-165b-409b-978e-ee436d0ae81c",
        "status": "PUBLISHED"
      }
    ],
    "selectedRelease": {},
    "Replay": [],
    "entity": "Validator",
    "publishedString": "SV-p1,Time,API_Automation_Client"
  }
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 22:04:53