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

Jolt转换:将动态键值对象转为指定格式字符串数组

动态键值对象转拼接字符串数组方案

编辑说明: 键名称是动态且未知的。

需求:将一个Object转换为字符串数组,数组每个元素是键(去除下划线)与对应值(数组元素用空格连接)拼接后的结果。目前已实现下划线去除,但无法完成后续拼接。


输入:

{
  "object": {
    "key_1": [
      "A",
      "B"
    ],
    "key_2": [
      "C"
    ],
    "key_3": [
      "D",
      "E",
      "F"
    ]
  }
}

期望输出:

{
  "results": [
    "key 1: A B",
    "key 2: C",
    "key 3: D E F"
  ]
}

当前使用的Spec:

[
  {
    "operation": "shift",
    "spec": {
      "object": {
        "*_*": "results.&(0,1) &(0,2)",
        "*": "results.&"
      }
    }
  }
]

当前输出结果:

{
  "results": {
    "key 1": [
      "A",
      "B"
    ],
    "key 2": [
      "C"
    ],
    "key 3": [
      "D",
      "E",
      "F"
    ]
  }
}

修正后的Spec:

[
  {
    "operation": "shift",
    "spec": {
      "object": {
        "*_*": {
          "$": "results[#2].key",
          "@": "results[#2].values"
        },
        "*": {
          "$": "results[#1].key",
          "@": "results[#1].values"
        }
      }
    }
  },
  {
    "operation": "modify-beta",
    "spec": {
      "results": {
        "*": "=concat([.key, ': ', join(' ', .values)])"
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "results": {
        "*": "results[]"
      }
    }
  }
]

步骤说明:

  1. Shift阶段:把每个键值对拆解为包含处理后键名(key)和原数组值(values)的对象,存入results数组,同时完成下划线替换为空格的操作。
  2. Modify-beta阶段:遍历results数组中的每个对象,将键名、: 和空格连接的数组值拼接成完整字符串。
  3. 最终Shift阶段:将拼接好的字符串提取为results数组的直接元素,得到目标格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 01:40:29