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

Jolt转换:如何将多对象转为指定键值对格式?

Jolt转换调整方案

问题背景

使用Jolt转换工具处理特征数据时,需要将按arrayIndex分组的条目转换为指定的键值对格式,当前转换结果不符合预期。

输入JSON数据

{
  "characteristic": [
    {
      "name": "usageCharacteristicName",
      "value": "availableBalance",
      "@type": "usageCharacteristic",
      "arrayIndex": "2"
    },
    {
      "name": "usageCharacteristicValue",
      "value": "2999.25",
      "@type": "usageCharacteristic",
      "arrayIndex": "2"
    },
    {
      "name": "usageCharacteristicName",
      "value": "Name",
      "@type": "usageCharacteristic",
      "arrayIndex": "0"
    },
    {
      "name": "usageCharacteristicValue",
      "value": "Jack",
      "@type": "usageCharacteristic",
      "arrayIndex": "0"
    },
    {
      "name": "usageCharacteristicName",
      "value": "Likes",
      "@type": "usageCharacteristic",
      "arrayIndex": "1"
    },
    {
      "name": "usageCharacteristicValue",
      "value": "Code",
      "@type": "usageCharacteristic",
      "arrayIndex": "1"
    }
  ]
}

当前使用的Jolt Spec

[
  {
    "operation": "shift",
    "spec": {
      "characteristic": {
        "*": {
          "arrayIndex": {
            "2": {
              "@(2,value)": "data.queryBalance.accountBalance"
            },
            "0": {
              "@(2,value)": "data.queryBalance.Name"
            },
            "1": {
              "@(2,value)": "data.queryBalance.Likes"
            }
          }
        }
      }
    }
  }
]

当前输出结果

{
  "data" : {
    "queryBalance" : {
      "accountBalance" : [ "availableBalance", "2999.25" ],
      "Name" : [ "Name", "Jack" ],
      "Likes" : [ "Likes", "Code" ]
    }
  }
}

期望输出格式

{
  "availableBalance": "2999.25",
  "Name": "Jack",
  "Likes": "Code"
}

调整后的Jolt Spec

[
  {
    "operation": "shift",
    "spec": {
      "characteristic": {
        "*": {
          "@(1,value)": "[&1.arrayIndex].&1.name"
        }
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "*": {
        "usageCharacteristicName": "@(1,usageCharacteristicValue)"
      }
    }
  }
]

说明

  1. 第一个shift操作:按arrayIndex将同组的特征数据归类,分别存储每组的usageCharacteristicName和usageCharacteristicValue值。
  2. 第二个shift操作:遍历每组数据,将usageCharacteristicName的值作为最终键,对应usageCharacteristicValue的值作为最终值,直接生成目标键值对结构。

内容的提问来源于stack exchange,提问作者Siva Prasad Vajja

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 17:10:27