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

适配两种JSON结构:基于条件移除嵌套数组字段的JOLT过滤器

JOLT条件删除字段解决方案

需求概述

仅当service字段值为THIS_SERVICE时,移除attributes_here中的key2和key5字段,同时完整保留原JSON的层级结构,需适配两种不同的顶层JSON结构。

最终JOLT过滤器规范

[
  // 完整复制原始JSON结构,保留所有字段
  {
    "operation": "shift",
    "spec": {
      "*": "&",
      "responseMessage": {
        "*": "responseMessage.&"
      }
    }
  },
  // 匹配条件并标记待删除字段
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "payload|responseMessage.payload": {
        "elements": {
          "*": {
            "service": {
              "THIS_SERVICE": {
                "@2,attributes": {
                  "*": {
                    "attributes_here": {
                      "key2": "",
                      "key5": ""
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  // 彻底移除标记的字段
  {
    "operation": "remove",
    "spec": {
      "payload|responseMessage.payload": {
        "elements": {
          "*": {
            "attributes": {
              "*": {
                "attributes_here": {
                  "key2|key5": ""
                }
              }
            }
          }
        }
      }
    }
  }
]

各阶段说明

  1. Shift复制阶段:通过通配符匹配所有顶层节点,完整保留原始JSON的层级结构;同时单独处理responseMessage内部子节点,确保两种输入结构都能被正确复制。
  2. Modify条件标记阶段:用payload|responseMessage.payload同时匹配两种输入中的payload路径,仅当service值为THIS_SERVICE时,将attributes_here下的key2和key5设为空值,标记为待删除项。
  3. Remove清理阶段:彻底移除已标记为空的key2和key5字段,保证输出结构符合预期。

验证效果

  • 针对输入1:payload.elements中service为THIS_SERVICE的项,其attributes_here会移除key2和key5,其余结构完全保留。
  • 针对输入2:responseMessage.payload.elements中对应项的attributes_here同样移除目标字段,顶层的status、notes等节点无变化。

内容的提问来源于stack exchange,提问作者dimitar.bonchev

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 21:05:21