如何访问Shopify的json_字符串类型中的密钥名?

如何访问Shopify的json_字符串类型中的密钥名?,shopify,liquid,Shopify,Liquid,例如,我在产品供应商['shipping\u to']中有这个JSON字符串: {"United States": {"time": "1-3"}, "Worldwide": {"time": "10-15"}} 我如何在液体中访问国家名称?我试过这个: {% for country, time in product_supplier['shipping_to'] %}

例如,我在
产品供应商['shipping\u to']
中有这个JSON字符串:

{"United States": {"time": "1-3"}, "Worldwide": {"time": "10-15"}}
我如何在液体中访问国家名称?我试过这个:

{% for country, time in product_supplier['shipping_to'] %}
  {{ country }}: {{ time['time'] }}
{% endfor %}
{% for country in product_supplier['shipping_to'] %}
  {{ country[0] }}, {{ country[1] }}
{% endfor %}
这显然不起作用,因为它给出了错误:
Liquid语法错误:“for循环”中的语法错误-有效语法:for[collection]中的[item]

并尝试了以下方法:

{% for country, time in product_supplier['shipping_to'] %}
  {{ country }}: {{ time['time'] }}
{% endfor %}
{% for country in product_supplier['shipping_to'] %}
  {{ country[0] }}, {{ country[1] }}
{% endfor %}
它只提供一个逗号的空输出:

,

从官方文档来看,它似乎只能访问值而不能访问键?

如果将元字段保存为json_字符串,则可以执行此操作

{% for item in product.metafields.product_supplier.shipping_to %}
 {{item[0]}}<br/>
{% endfor %}
同样,这必须是json字符串才能工作

因此,它与第三个示例类似,但我们使用适当的对象(在本例中为
product.metafields
)来定位该元字段


在我的终端上测试了它,它可以正常工作。

如果您将元字段保存为json\u字符串,则可以执行此操作

{% for item in product.metafields.product_supplier.shipping_to %}
 {{item[0]}}<br/>
{% endfor %}
同样,这必须是json字符串才能工作

因此,它与第三个示例类似,但我们使用适当的对象(在本例中为
product.metafields
)来定位该元字段


在我这边测试过,它可以正常工作。

我认为这个字符串格式,你需要用字符串过滤器检查,数组循环在这种情况下不起作用。我认为这个字符串格式,你需要用字符串过滤器检查,数组循环在这种情况下不起作用。但是如何输出值部分?e、 g.{“time”:“1-2”}@datasn.io使用
项[1]
=>
{%for item[1]]}{{sub[0]}{{sub[1]}{%endfor%}
或直接
项[1]>
.time
仍然不起作用。我不确定出了什么问题:
{%assign shipping_to=product_supplier['shipping_to'];json_parse%}{%for shipping_to%}{{{item[0]}}
{%endfor%}
我如何确保产品供应商['shipping_to']实际上是一个json_字符串类型,而不仅仅是一个字符串?看起来它只是一个字符串。@datasn.io您需要将元字段类型保存为
json\u string
,您不能仅通过添加json来实现这一点,这应该是您正在使用的元字段应用程序中的一个选项。请参阅
value\u type
属性,它可以是
string
integer
json\u string
。但是如何输出值部分?e、 g.{“time”:“1-2”}@datasn.io使用
项[1]
=>
{%for item[1]]}{{sub[0]}{{sub[1]}{%endfor%}
或直接
项[1]>
.time
仍然不起作用。我不确定出了什么问题:
{%assign shipping_to=product_supplier['shipping_to'];json_parse%}{%for shipping_to%}{{{item[0]}}
{%endfor%}
我如何确保产品供应商['shipping_to']实际上是一个json_字符串类型,而不仅仅是一个字符串?看起来它只是一个字符串。@datasn.io您需要将元字段类型保存为
json\u string
,您不能仅通过添加json来实现这一点,这应该是您正在使用的元字段应用程序中的一个选项。请参阅
value\u-type
属性,该属性可以是
string
integer
json\u-string