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

如何通过Jolt将Map转List并添加默认条目?

解决Jolt转换时添加默认数组元素的问题

问题描述

输入JSON:

{
  "iban": "IR970130100000000000001399",
  "paymentCode": "124"
}

期望输出:

{
  "parameters": [
    {
      "name": "iban",
      "value": "IR970130100000000000001399"
    },
    {
      "name": "paymentCode",
      "value": "124"
    },
    {
      "name": "P_RQID",
      "value": "4f2ba174-690f-4d41-9bcc-b958789fe6d7"
    }
  ]
}

原Jolt Spec无法添加默认条目,实际输出缺少P_RQID项。

问题原因

原Spec中的default操作路径错误:parameters是数组类型,而非单个对象,直接给parameters.name赋值无法向数组中添加新元素。default操作仅能为已存在的对象属性设置默认值,无法创建新的数组元素。

解决方案

方案一:使用modify-overwrite-beta追加数组元素

通过modify-overwrite-beta操作的append函数,向已生成的parameters数组中添加默认条目:

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "$": "parameters.[#2].name",
        "@": "parameters.[#2].value"
      }
    }
  },
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "parameters": "=append(@,[{\"name\":\"P_RQID\",\"value\":\"4f2ba174-690f-4d41-9bcc-b958789fe6d7\"}])"
    }
  }
]

方案二:在shift操作中直接添加默认条目

在第一次shift操作里,通过指定数组索引([2],前两个元素索引为0和1)直接写入默认值,一步完成转换:

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "$": "parameters.[#2].name",
        "@": "parameters.[#2].value"
      },
      "#P_RQID": "parameters.[2].name",
      "#4f2ba174-690f-4d41-9bcc-b958789fe6d7": "parameters.[2].value"
    }
  }
]

两种方案均可生成符合预期的输出,方案二更简洁,无需额外操作步骤。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 20:06:22