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

求可转换含动态日期字段JSON的正确Jolt规格

Jolt规格转换:合并动态日期下的商品数组

需求

需要编写Jolt规格,将包含动态日期字段及对应商品数组的输入JSON,转换为所有商品项独立排列在market.DATE数组中的输出JSON。此前尝试的规格会导致部分项分组,无法得到预期结果。

输入JSON

{
  "market": {
    "2024-04-13": [
      {
        "code": "ABC",
        "name": "Name1",
        "date": "2024-04-13T00:00:00.000Z",
        "rev": 100,
        "sold": 1
      }
    ],
    "2024-04-14": [
      {
        "code": "DEF",
        "name": "Name2",
        "date": "2024-04-14T00:00:00.000Z",
        "rev": 233.32,
        "sold": 3
      },
      {
        "code": "EFG",
        "name": "DISCOUNT",
        "date": "2024-04-14T00:00:00.000Z",
        "rev": 300.05,
        "sold": 1
      },
      {
        "code": "MNO",
        "name": "GROUP",
        "date": "2024-04-14T00:00:00.000Z",
        "rev": 45.33,
        "sold": 3
      }
    ],
    "2024-04-15": [
      {
        "code": "POR",
        "name": "TEST",
        "date": "2024-04-15T00:00:00.000Z",
        "rev": 100,
        "sold": 1
      }
    ]
  }
}

预期输出JSON

{
  "market": {
    "DATE": [
      {
        "code": "ABC",
        "name": "Name1",
        "date": "2024-04-13T00:00:00.000Z",
        "rev": 100,
        "sold": 1
      },
      {
        "code": "DEF",
        "name": "Name2",
        "date": "2024-04-14T00:00:00.000Z",
        "rev": 233.32,
        "sold": 3
      },
      {
        "code": "EFG",
        "name": "DISCOUNT",
        "date": "2024-04-14T00:00:00.000Z",
        "rev": 300.05,
        "sold": 1
      },
      {
        "code": "MNO",
        "name": "GROUP",
        "date": "2024-04-14T00:00:00.000Z",
        "rev": 45.33,
        "sold": 3
      },
      {
        "code": "POR",
        "name": "TEST",
        "date": "2024-04-15T00:00:00.000Z",
        "rev": 100,
        "sold": 1
      }
    ]
  }
}

此前尝试的Jolt规格(未达预期)

[
  {
    "operation": "shift",
    "spec": {
      "market": {
        "*": {
          "*": {
            "code": "market[&1].code",
            "name": "market[&1].name",
            "date": "market[&1].date",
            "rev": "market[&1].rev",
            "sold": "market[&1].sold"
          }
        }
      }
    }
  }
]

正确的Jolt规格

[
  {
    "operation": "shift",
    "spec": {
      "market": {
        "*": {
          "*": {
            "@": "market.DATE[]"
          }
        }
      }
    }
  }
]

规格说明

  • 用shift操作,通过通配符*遍历market下所有动态日期字段;
  • 再遍历每个日期字段下的商品数组元素;
  • 通过@引用当前完整的商品对象,并用market.DATE[]将其追加到目标数组,确保所有商品项独立排列,不会出现分组问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 08:23:18