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

求助:如何使用JSONata重构商品数据结构

JSONata 商品数据结构转换实现方案

针对你提供的商品源数据,以下JSONata表达式可实现目标结构转换,自动扁平化properties数组中的键值对,并为缺失的customization_logo和customization_logo_pos字段补空字符串:

{
  "products": $map($, function($item) {
    $merge([
      {
        "name": $item.name,
        "quantity": $item.quantity
      },
      $reduce($item.properties, function($acc, $prop) {
        $merge([$acc, {$prop.name: $prop.value}])
      }, {}),
      {
        "customization_logo": $item.properties[name="customization_logo"].value ~> $default(""),
        "customization_logo_pos": $item.properties[name="customization_logo_pos"].value ~> $default("")
      }
    ])
  })
}

表达式拆解

  • 外层结构构建:用{ "products": ... }包裹最终结果数组
  • 遍历源数据:$map($, ...)遍历输入的商品数组,逐个处理每个商品项
  • 基础字段提取:直接提取name和quantity核心字段
  • 扁平化properties:通过$reduce遍历properties数组,将每个name-value对合并为对象属性
  • 缺失字段补全:使用$default("")为不存在的customization_logo和customization_logo_pos字段设置默认空字符串

将上述表达式应用到源数据后,会生成与你期望完全一致的JSON结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 15:35:20