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

使用Jsonata将对象数组转换为以索引为键的键值对象列表

实现数组转索引键值对象的Jsonata方案

需求说明

  • 将源JSON中Account.Order[0]下的Product对象数组,转换为以数组索引(字符串类型的"0"、"1")为键的键值对象
  • 最终输出包裹在result字段下,每个索引对应的value保留原Product对象的全部字段和嵌套结构

可用Jsonata语句

{
  "result": $merge(Account.Order[0].Product.(
    { $string($pos): $ }
  ))
}

逻辑解释

  • Account.Order[0].Product:通过路径定位到待转换的Product目标数组,源数据中Order数组仅包含1个订单元素,因此取索引0的订单节点
  • 数组遍历上下文里的内置变量$pos代表当前元素从0起始的索引值,通过$string($pos)将数值索引转为字符串类型作为对象键,当前遍历到的Product元素$作为值,为每个数组项生成一个单键对象
  • $merge()函数将遍历生成的所有单键对象合并为一个平面对象,最终作为result字段的值,和目标输出结构完全匹配

补充说明

  • 转换过程会完整保留Product对象下所有嵌套字段(比如Description对象的全部属性),不会出现字段丢失
  • 如果后续需要处理Order数组下的多个订单,可基于当前语句调整路径遍历逻辑即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 05:06:25