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

Jolt如何实现匹配条件时将字符串属性转数组(属性名动态未知)

Jolt动态键值分割转换解决方案

可直接使用的完整Jolt Spec

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "@(1,stringValue)": "@(1,attributeKey)"
      }
    }
  },
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "*": "=split('¤', @(1,&))"
    }
  },
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "*": "=ifElse(equals(size(@(1,&)), 1), firstElement(@(1,&)), @(1,&))"
    }
  }
]

转换逻辑说明

  • 第一步shift操作:遍历输入数组的所有元素,将每个元素的attributeKey作为输出根节点的键,对应的stringValue作为值,完成从对象数组到动态键对象的映射,不需要提前预知任何attributeKey的取值。
  • 第二步modify-overwrite-beta操作:用通配符*匹配根节点下所有动态生成的键,对每个值执行split函数按字符¤分割。此时所有值都会被处理为数组类型,不含¤的值会被处理为仅包含原始字符串的单元素数组。
  • 第三步modify-overwrite-beta操作:对每个分割后的数组做判断:如果数组长度为1,就取数组的第一个元素作为最终值(还原为字符串类型);如果数组长度大于1,就保留原数组,完全符合转换规则要求。

验证结果

对你提供的示例输入执行上述Spec后,输出结果和要求完全一致:

{
  "foo": "fooValue",
  "bar": ["barValue1", "barValue2"]
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 10:45:02