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

在Liquid中访问应用元字段的JSON值返回null,该如何解决?

问题

我添加了如下JSON格式的元字段:

{
  "car": {
    "color": "Red"
  },
  "train": {
    "color": "Blue"
  }
}

已通过metafieldsSet mutation完成添加,但尝试用Liquid语法{{ app.metafields.namespace.key.car }}访问car属性时返回null,想问这种嵌套属性访问是否可行?如果可行,我哪里做错了?

解决思路
  • 确认元字段类型:这是最常见的问题。如果创建元字段时没指定json类型,Shopify会把它当成普通字符串存储,Liquid没法直接解析嵌套结构。
    • 正确做法:创建时在metafieldsSet的type参数里设为json(比如"type": "json"),这样Shopify会自动解析JSON,你就能直接用{{ app.metafields.namespace.key.car.color }}访问值。
    • 如果已经用了string类型,补救方法是用Liquid过滤器先解析:{{ app.metafields.namespace.key | parse_json }}.car.color
  • 核对命名空间和键名:namespace和key必须和你创建元字段时的完全一致,大小写、拼写都不能错,Liquid对这些是敏感的。
  • 检查元字段的归属对象路径:app.metafields只对应特定范围的元字段,如果你的元字段是存在产品、店铺或其他对象上,路径要对应调整。比如产品元字段应该用{{ product.metafields.namespace.key.car }},店铺元字段用{{ shop.metafields.namespace.key.car }}。
  • 先输出整个元字段排查:先直接输出{{ app.metafields.namespace.key }},看返回的是解析后的对象还是原始JSON字符串。如果是字符串,说明类型不对;如果是对象但路径访问不到,再检查嵌套层级的拼写。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 15:35:12