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

Shopify bulk query返回JSONL结果解析及嵌套数据结构还原方法咨询

识别子记录所属父属性的方法

1. 从gid全局ID中提取对象类型判断

Shopify返回的所有对象ID格式统一为gid://shopify/[对象类型]/[数值ID],你可以直接提取ID中的对象类型字段,和你GraphQL查询中Product下的关联字段一一对应:

  • ID中包含ProductVariant → 归属父级Product的variants数组
  • ID中包含Collection → 归属父级Product的collections数组
  • ID中包含ProductImage → 归属父级Product的images数组
  • ID中包含Metafield → 按父级对象类型归属到对应父级的metafields数组

你示例中的第二行记录ID为gid://shopify/ProductVariant/40163436363956,提取到对象类型为ProductVariant,因此直接判定为父级Product的variants数组元素。

2. 结合自定义的GraphQL查询结构做校验

你自己编写的查询中,Product下的嵌套列表类型只有variants、collections、images三类,options字段为直接嵌套返回(你示例的首行Product记录已经自带了完整的options数组),不会出现类型歧义的情况。


补充优化方案

如果担心后续查询调整后出现类型冲突,可以在编写GraphQL查询时,给所有嵌套节点添加__typename返回字段,这样返回的每一行JSONL记录都会明确携带类型标识,不需要依赖ID解析判断,容错性更高,修改示例如下:

variants(first: 10) {
  edges {
    node {
      __typename # 新增该字段
      id
      price
      title
    }
  }
}

完整还原流程参考

  1. 首次遍历所有JSONL行,将所有对象以ID为key存入全局字典,同时给每个Product对象预先初始化variants、collections、images空数组,给每个Collection对象预先初始化metafields空数组
  2. 二次遍历所有携带__parentId的子记录:
    • 提取子记录的对象类型
    • 通过__parentId找到对应父级对象
    • 将子记录推入父级对象对应的属性数组即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 23:54:04