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

使用Jolt转换对象数组并将部分字段迁移至嵌套coding数组

Jolt数组转换:将diagnoses元素字段嵌套入coding数组

需要处理diagnoses对象数组的Jolt转换,要求把每个元素里除了sequence之外的所有字段,都放到嵌套的coding数组中。目前单个对象的转换逻辑可行,但数组形式的转换还没搞定。

输入JSON

{
  "diagnoses": [
    {
      "version": "20230607",
      "code": "A100",
      "display": "Diagnosis 1",
      "sequence": 1
    },
    {
      "version": "20230607",
      "code": "B100",
      "display": "Diagnosis 2",
      "sequence": 2
    }
  ]
}

期望输出JSON

{
  "diagnoses": [
    {
      "coding": [
        {
          "version": "20230607",
          "code": "A100",
          "display": "Diagnosis 1"
        }
      ],
      "sequence": 1
    },
    {
      "coding": [
        {
          "version": "20230607",
          "code": "B100",
          "display": "Diagnosis 2"
        }
      ],
      "sequence": 2
    }
  ]
}

单个对象的转换参考

单个对象输入

{
  "version": "20230607",
  "code": "A100",
  "display": "Diagnosis 1",
  "sequence": 1
}

单个对象的Jolt规格

[
  {
    "operation": "shift",
    "spec": {
      "sequence": "&",
      "*": "coding[0].&"
    }
  }
]

数组场景的Jolt解决方案

针对数组形式的输入,只需要在shift操作的spec里,先遍历diagnoses数组的每个元素,再对每个元素套用单个对象的转换逻辑即可:

[
  {
    "operation": "shift",
    "spec": {
      "diagnoses": {
        "*": {
          "sequence": "diagnoses[&1].&",
          "*": "diagnoses[&1].coding[0].&"
        }
      }
    }
  }
]

逻辑说明

  • diagnoses.* 匹配diagnoses数组里的每一个元素,&1 代表当前元素的数组索引,保证输出数组的顺序和输入一致
  • 对每个元素里的sequence字段,直接映射到输出数组对应位置的sequence字段
  • 其他所有字段(用*匹配),都映射到对应位置的coding[0]对象下,保持字段名不变

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 06:00:15