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

如何在Jolt中基于ID数组与对应对象值修改布尔标志字段?

Jolt转换实现:根据关联对象更新布尔字段值

需求说明

给定包含accessIds数组、对应布尔标志字段及部分ID关联的ACCESS_comment_[ID]对象的JSON,需通过Jolt实现:遍历accessIds中的每个ID,若存在对应的ACCESS_comment_[ID]对象,则将[ID]_ACCESS_comment_isPresent字段值改为"true";若不存在该对象,则保持原字段值不变。

输入JSON

{
  "accessIds": [
    "2293754",
    "6660000"
  ],
  "2293754_ACCESS_comment_isPresent": "false",
  "6660000_ACCESS_comment_isPresent": "false",
  "ACCESS_comment_2293754": {
    "accessId": "2293754",
    "commentIsPresent": true,
    "textValue": "No problems reported."
  }
}

期望输出JSON

{
  "2293754_ACCESS_comment_isPresent": "true",
  "6660000_ACCESS_comment_isPresent": "false"
}

Jolt转换规范

[
  {
    "operation": "shift",
    "spec": {
      "*_ACCESS_comment_isPresent": "&",
      "accessIds": {
        "*": {
          "@(2,ACCESS_comment_&)": {
            "#true": "&2_&1_ACCESS_comment_isPresent"
          }
        }
      }
    }
  },
  {
    "operation": "remove",
    "spec": {
      "accessIds": "",
      "ACCESS_comment_*": ""
    }
  }
]

转换说明

  1. Shift操作:
    • 先保留所有原有的*_ACCESS_comment_isPresent字段,确保未匹配到关联对象的字段维持初始值
    • 遍历accessIds数组中的每个ID,向上两级查找是否存在ACCESS_comment_[ID]对象;若存在,则生成对应的[ID]_ACCESS_comment_isPresent字段并赋值为"true",利用shift操作的覆盖特性替换原有值
  2. Remove操作:移除输入中不需要的accessIds数组和ACCESS_comment_*对象,仅保留目标布尔字段

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 16:23:58