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

在Jolt中按指定条件过滤JSON列表的实现方法是否正确?

问题:Jolt实现JSON元素过滤与字段重命名的方案是否正确?

业务场景与需求

我们遇到一个业务场景,需要根据特定条件过滤输入JSON中的元素:筛选出isPreOrder=N且isBackOrder=N的元素,同时对保留字段进行重命名。最终通过两个shift操作的Jolt Spec完成了需求,现确认该实现方式是否正确。

输入JSON

[{
    "productId": "10002",
    "shopifyProductId": "31675487486045",
    "shopifyInventoryItemId": "33346316861533",
    "isPreOrder": "N",
    "isBackOrder": "Y",
    "computedLastInventoryCount": 7956,
    "productStoreId": "SG_STORE"
  },
  {
    "productId": "10003",
    "shopifyProductId": "31675487486046",
    "shopifyInventoryItemId": "33346316861536",
    "isPreOrder": "N",
    "isBackOrder": "N",
    "computedLastInventoryCount": 7958,
    "productStoreId": "SG_STORE"
  }
]

预期输出

[ {
  "HC_PRODUCT_ID" : "10003",
  "INVENTORY_ITEM_ID" : "33346316861536",
  "PRODUCT_VARIANT_ID" : "31675487486046"
} ]

使用的Jolt Spec

[{
    "operation": "shift",
    "spec": {
      "*": {
        "isPreOrder": {
          "N": {
            "@(2,isBackOrder)": {
              "N": {
                "@4": "[]"
              }
            }
          }
        }
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "*": {
        "productId": "[&1].HC_PRODUCT_ID",
        "shopifyInventoryItemId": "[&1].INVENTORY_ITEM_ID",
        "shopifyProductId": "[&1].PRODUCT_VARIANT_ID"
      }
    }
  }
]

方案正确性确认

该实现方式是正确的,具体说明:

  1. 第一个shift操作:通过嵌套条件判断,先匹配isPreOrder为"N"的元素,再在这些元素中筛选isBackOrder为"N"的项,最后用@4引用原始数组元素(层级计算:从当前"N": {...}层级往上数4层,正好对应数组中的单个元素),将符合条件的元素收集到数组中,完成过滤。
  2. 第二个shift操作:遍历过滤后的数组元素,将指定字段重命名为目标名称,生成最终预期结构。

另外也可以将两个操作合并为一个shift操作,减少步骤,示例如下:

[{
  "operation": "shift",
  "spec": {
    "*": {
      "isPreOrder": {
        "N": {
          "@(2,isBackOrder)": {
            "N": {
              "@(2,productId)": "[#2].HC_PRODUCT_ID",
              "@(2,shopifyInventoryItemId)": "[#2].INVENTORY_ITEM_ID",
              "@(2,shopifyProductId)": "[#2].PRODUCT_VARIANT_ID"
            }
          }
        }
      }
    }
  }
}]

这里#2用于计数符合条件的元素,自动生成数组索引,同样可得到预期结果。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 07:17:41