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

如何用JSONata将键值对数组转为父对象属性

解决方案

你可以使用JSONata的动态属性构造和$merge()函数实现动态转换,无需提前知晓properties中的键名。具体表达式如下:

$[].({
  "city": city
} & $merge(properties.{ (name): value }))

表达式说明:

  • $[]:遍历输入数组中的每一个城市对象
  • { "city": city }:保留原始city属性,构造基础对象
  • properties.{ (name): value }:将properties数组中的每个元素转换为单键值对对象(例如{ "population": 37 })
  • $merge():把这些单键值对对象合并成一个完整的属性对象
  • &:将基础对象和合并后的属性对象合并,最终得到包含所有动态属性的目标结构

输入示例:

[
  {
    "city": "Ottawa",
    "properties": [
      {
        "name": "population",
        "value": 37
      },
      {
        "name": "postalCode",
        "value": 10001
      },
      {
        "name": "founded",
        "value": 1826
      }
    ]
  },
  {
    "city": "Toronto",
    "properties": [
      {
        "name": "population",
        "value": 54
      },
      {
        "name": "postalCode",
        "value": 10002
      }
    ]
  }
]

输出结果:

[
  {
    "city": "Ottawa",
    "population": 37,
    "postalCode": 10001,
    "founded": 1826
  },
  {
    "city": "Toronto",
    "population": 54,
    "postalCode": 10002
  }
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 00:05:41