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

基于JOLT实现JSON数组按LocationX/Y分组及字段映射需求

JOLT分组及字段映射解决方案

输入JSON示例

{
  "StartTime": "2024-05-20T10:00:00",
  "SessionData": [
    {
      "LocationX": "A",
      "LocationY": "1",
      "distance_3": 12.5,
      "distance_4": 8.3
    },
    {
      "LocationX": "A",
      "LocationY": "1",
      "distance_3": 13.1,
      "distance_4": 7.9
    },
    {
      "LocationX": "B",
      "LocationY": "2",
      "distance_3": 9.7,
      "distance_4": 10.2
    }
  ]
}

JOLT转换配置

[
  // 分组+字段重命名+保留StartTime
  {
    "operation": "shift",
    "spec": {
      "StartTime": "StartTime",
      "SessionData": {
        "*": {
          "LocationX": "grouped.&1.LocationX",
          "LocationY": "grouped.&1.LocationY",
          "distance_3": "grouped.&1.X_Z_distance",
          "distance_4": "grouped.&1.Y_Z_distance"
        }
      }
    }
  },
  // 为每个分组对象注入StartTime
  {
    "operation": "shift",
    "spec": {
      "StartTime": "*StartTime",
      "grouped": {
        "*": {
          "@(2,StartTime)": "&1.StartTime",
          "*": "&1.&"
        }
      }
    }
  },
  // 将分组结构转为数组
  {
    "operation": "shift",
    "spec": {
      "*": {
        "*": "[]"
      }
    }
  },
  // 添加默认字段Rod:"S"
  {
    "operation": "default",
    "spec": {
      "*": {
        "Rod": "S"
      }
    }
  }
]

输出JSON示例

[
  {
    "LocationX": "A",
    "LocationY": "1",
    "X_Z_distance": 12.5,
    "Y_Z_distance": 8.3,
    "StartTime": "2024-05-20T10:00:00",
    "Rod": "S"
  },
  {
    "LocationX": "A",
    "LocationY": "1",
    "X_Z_distance": 13.1,
    "Y_Z_distance": 7.9,
    "StartTime": "2024-05-20T10:00:00",
    "Rod": "S"
  },
  {
    "LocationX": "B",
    "LocationY": "2",
    "X_Z_distance": 9.7,
    "Y_Z_distance": 10.2,
    "StartTime": "2024-05-20T10:00:00",
    "Rod": "S"
  }
]

配置说明

  1. 第一个shift操作:保留顶层StartTime,遍历SessionData数组时将每个元素按原索引存入grouped结构,同时完成distance_3→X_Z_distance、distance_4→Y_Z_distance的字段映射。
  2. 第二个shift操作:通过@(2,StartTime)将顶层StartTime值注入到每个分组对象中,确保每个对象都携带该字段。
  3. 第三个shift操作:把grouped下的键值对转换为数组元素,形成最终的数组输出结构。
  4. default操作:为数组内每个对象添加默认字段Rod: "S"。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 04:02:34