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

基于双条件替换扁平化JSON中的值(Jolt实现)

Jolt扁平化JSON的条件替换解决方案

需求:针对扁平化后的JSON,当同一索引下的values_*_identifier等于"colour"且values_*_value等于"green"时,将"green"替换为"gre",需满足AND逻辑且保证索引一致。

输入JSON:

{
  "values_0_identifier": "country",
  "values_0_value": "red",
  "values_0_value_unit_key": "",
  "values_0_language": "",
  "values_1_identifier": "metal",
  "values_1_value": "red",
  "values_1_value_unit_key": "",
  "values_1_language": "",
  "values_2_identifier": "colour",
  "values_2_value": "green",
  "values_2_value_unit_key": "",
  "values_2_language": ""
}

期望输出:

{
  "values_0_identifier": "country",
  "values_0_value": "red",
  "values_0_value_unit_key": "",
  "values_0_language": "",
  "values_1_identifier": "metal",
  "values_1_value": "red",
  "values_1_value_unit_key": "",
  "values_1_language": "",
  "values_2_identifier": "colour",
  "values_2_value": "gre",
  "values_2_value_unit_key": "",
  "values_2_language": ""
}

你尝试的Spec存在两个问题:

  • 条件判断逻辑错误,导致目标值被吞没
  • 无法通过通配符匹配同一索引,只能指定具体数字

解决方案

采用三步Jolt操作实现需求:

  1. 将同一索引的字段分组,方便条件判断
  2. 对分组后的字段进行AND条件判断,替换目标值
  3. 将分组后的结构重新扁平化回原格式

完整Jolt Spec:

[
  // 第一步:按索引分组字段
  {
    "operation": "shift",
    "spec": {
      "values_*_*": {
        "$(0,1)": {
          "$(0,2)": "&1_&2"
        }
      }
    }
  },
  // 第二步:条件判断并替换value
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "*": {
        "value": {
          "$": "=and(equals(@(1,identifier), 'colour'), equals(@, 'green'))",
          "true": "#gre",
          "*": "@"
        }
      }
    }
  },
  // 第三步:重新扁平化回原键格式
  {
    "operation": "shift",
    "spec": {
      "*": {
        "*": "values_&1_&"
      }
    }
  }
]

说明

  • 第一步shift操作:通过通配符values_*_*捕获索引数字和字段类型(如identifier/value),将同一索引的字段归组到以索引数字命名的对象下,解决了索引匹配的问题。
  • 第二步modify-overwrite-beta操作:使用=and()实现AND逻辑判断,当当前索引下的identifier为"colour"且value为"green"时,将value替换为"gre";否则保留原value。
  • 第三步shift操作:将分组后的结构重新转换为原扁平化格式,保证输出键的命名规则与输入完全一致。

内容的提问来源于stack exchange,提问作者Katja Bürger

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 05:53:09