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

JOLT转换需求:检测JSON值中的竖线特殊字符并拆分对象

JOLT转换需求:检测JSON值中的竖线特殊字符并拆分对象

嘿,我来帮你搞定这个JOLT转换的需求!你想要检测JSON里value字段中的竖线|,把包含竖线的字段拆分成多个独立对象,同时保留其他字段不变对吧?我给你整理了一套可行的JOLT转换规范,一步步帮你实现这个效果:

输入JSON

[
  {
    "item_original_no": "item1",
    "attribute": "PACKAGING_MATERIAL_1",
    "value": "PET"
  },
  {
    "item_original_no": "item2",
    "attribute": "colour",
    "value": "red|white|blue"
  }
]

目标输出JSON

[
  {
    "item_original_no": "item1",
    "attribute": "PACKAGING_MATERIAL_1",
    "value": "PET"
  },
  {
    "item_original_no": "item2",
    "attribute": "colour",
    "value": "red"
  },
  {
    "item_original_no": "item2",
    "attribute": "colour",
    "value": "white"
  },
  {
    "item_original_no": "item2",
    "attribute": "colour",
    "value": "blue"
  }
]

JOLT转换规范

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "value": {
          "*|*": {
            "$(2,item_original_no)": "[#3].item_original_no",
            "$(2,attribute)": "[#3].attribute",
            "@(0)": "[#3].value_original"
          },
          "*": {
            "$(2,item_original_no)": "[#3].item_original_no",
            "$(2,attribute)": "[#3].attribute",
            "@(0)": "[#3].value"
          }
        }
      }
    }
  },
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "*": {
        "value_original": {
          "split('|')": "&1_split"
        }
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "*": {
        "value": {
          "@(1,item_original_no)": "[#2].item_original_no",
          "@(1,attribute)": "[#2].attribute",
          "@": "[#2].value"
        },
        "value_split": {
          "*": {
            "@(2,item_original_no)": "[#3].item_original_no",
            "@(2,attribute)": "[#3].attribute",
            "@": "[#3].value"
          }
        }
      }
    }
  },
  {
    "operation": "remove",
    "spec": {
      "*": {
        "value_original": ""
      }
    }
  }
]

转换步骤说明

  • 第一步(Shift操作):先区分value字段是否包含竖线|,对包含竖线的字段暂存原始值到value_original,不包含的直接保留原有字段结构。
  • 第二步(Modify操作):利用split('|')函数把value_original中的字符串拆分成数组,存入value_split字段。
  • 第三步(Shift操作):把拆分后的数组元素逐个转换成独立的对象,同时保留未拆分的原始对象结构,确保所有数据都符合目标格式。
  • 第四步(Remove操作):清理掉临时生成的value_original字段,得到最终干净的输出结果。

备注:内容来源于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.04.16 08:14:34