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

如何在Shopify Liquid模板中正确显示ACF元字段的JSON数组值

问题排查与解决方案

从你的调试结果来看,核心问题是元字段的值被双重编码了——Raw JSON显示为"[\"1\",\"2\",\"3\"]"(即外层包裹了双引号的JSON字符串),这意味着ACF存储的不是原生JSON数组,而是把JSON数组转成字符串类型存储,导致parse_json无法正确解析成数组。

排查步骤&解决方案

  • 第一步:检查ACF字段类型设置
    确认你在ACF中创建的oval字段类型是**数组(Array)**或对应尺码选择的列表类型,而不是文本(Text)字段。如果选了文本字段,ACF会把你输入的JSON直接当成字符串保存,自动加上外层引号,造成双重编码。

  • 第二步:修正Liquid解析逻辑
    如果暂时无法调整ACF设置,可以先在代码中去掉外层引号再解析JSON:

    <h2>ACF 'oval' Metafield Debug</h2>
    <p><strong>Raw JSON Value:</strong> {{ product.metafields.custom.oval }}</p>
    {% assign raw_oval = product.metafields.custom.oval | strip_quotes %}
    {% assign oval_array = raw_oval | parse_json %}
    <p><strong>Processed Array:</strong> {{ oval_array | join: ', ' }}</p>
    
    <h3>Iterating Over 'oval' Array</h3>
    {% if oval_array.size > 0 %}
    <ul>
    {% for item in oval_array %}
    <li>{{ item }}</li>
    {% endfor %}
    </ul>
    {% else %}
    <p>Error: JSON is not parsed correctly.</p>
    {% endif %}
    

    这里用strip_quotes过滤器先移除字符串外层的双引号,再用parse_json就能正确解析成数组了。

  • 第三步:验证Shopify元字段类型
    进入Shopify后台,查看该产品的custom.oval元字段,确认其类型是JSON,而不是单行文本。ACF如果映射错误,会把数组转成文本类型存储,也会导致这个问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 16:37:56