我想知道是否有人知道我是否可以访问Liquid中的JSON,例如下面的示例。
我为包含名称空间suppliers_details
的供应商页面创建了一个元字段,其中包含键suppliers
和值:
{
name: "Supplier Name One",
address: "Supplier Address One"
},
{
name: "Supplier Name Two",
address: "Supplier Address Two"
}
在模板中我有:
{% assign suppliers = page.metafields.suppliers.suppliers %}
{% for supplier in suppliers %}
<p>{{ supplier.name }}</p>
<p>{{ supplier.address }}</p>
{% endfor %}
这不起作用,因为我无法将数据更改为模板可用于迭代的格式,有没有办法做到这一点?
干杯
答案 0 :(得分:3)
现在支持此功能,并且可以改变游戏规则! Shopify发布了一种新的元字段格式类型,称为“ json_string”,使您可以通过普通的液点符号直接访问每个节点的值。我知道这将使每个人的生活更加轻松。摘自文档(https://help.shopify.com/en/themes/liquid/objects/metafield):
这是Shopify开发人员在Shopify论坛上的初步帖子之一,可能会帮助您:https://ecommerce.shopify.com/c/api-announcements/t/new-json_string-value-type-for-metafield-object-540896
答案 1 :(得分:1)
无法使用Liquid解析JSON,或者至少不是默认方式。
您可以编写一些代码将其拆分为多个部分,但您无法将对象链接起来:
#container {
width: 500px;
margin: 0 auto;
border: 1px solid #000;
}
#first {
position:absolute;
left:0;
height:100%;
}
#second {
position:absolute;
right:0;
height:100%;
}
你会得到想要的结果,但不像你想象的那样。
最好的方法是将字符串传递给Javascript,在那里解析并通过JS填充DOM。
答案 2 :(得分:0)
我认为它现在正在工作,下面是我的json,它是产品metafield,而valueType是json字符串
[
{
"question":"hello this is question",
"answer":"Hello This is answer"
},
{
"question":"hello this is question2 ",
"answer":"Hello This is answer 2"
}
]
打击是液体代码
{% assign qas = product.metafields.manifester.product_qa %} // product.metafields.{namespace}.{key}
{% for qa in qas %}
<div style="border-bottom: 1px solid #222222;">
<p> {{ qa.question }} </p>
<p style="font-weight:bold"> {{ qa.answer }} </p>
</div>
{% endfor %}