Parsing 在Shopify Liquid中将字符串解析为令牌

Parsing 在Shopify Liquid中将字符串解析为令牌,parsing,shopify,tokenize,liquid,Parsing,Shopify,Tokenize,Liquid,我在Shopify元字段中有以下字符串(“my_str”): a:3,b:1,c:2,d:2,e:2,f:2 键是产品变体ID(缩写为a、b、c…),数字是数量 我需要将它解析为键:值对,这样我就可以用它做类似的事情: {% assign my_str = collection.metafields.local.my_metafield %} {% assign my_map = my_str | parse ???? %} {% for product in collection.prod

我在Shopify元字段中有以下字符串(“my_str”):

a:3,b:1,c:2,d:2,e:2,f:2
键是产品变体ID(缩写为a、b、c…),数字是数量

我需要将它解析为键:值对,这样我就可以用它做类似的事情:

{% assign my_str = collection.metafields.local.my_metafield %}
{% assign my_map = my_str | parse ???? %}

{% for product in collection.products %}
    {% assign temp_qty = 1 %}
    {% for pair in my_map %}
        {% if pair[0] == product.variants.first.id %}
          {% assign temp_qty = pair[1] %}
        {% endif %}
    {% endfor %}
    <input type="hidden"  id="abc-{{ forloop.index0 }}" value=temp_qty />
{% endfor %}
{%assign my_str=collection.metafields.local.my_metafield%}
{%assign my_map=my_str|parse???%}
{%用于集合中的产品。产品%}
{%assign temp_qty=1%}
{my_map%中配对的%s}
{%if对[0]==product.variants.first.id%}
{%assign temp_qty=对[1]}
{%endif%}
{%endfor%}
{%endfor%}

我肯定不知道如何解析我的字符串。我也愿意接受关于总体最佳方法的建议。

在创建数组时,Liquid是非常有限的。常用的方法是使用

在您的情况下,它看起来是这样的:

{% assign my_str = 'a:3,b:1,c:2,d:2,e:2,f:2' %}
{% assign my_arr = my_str | split: ',' %}

{% for pair_str in my_arr %}
  {% assign pair_arr = pair_str | split: ':' %}
  ID: {{ pair_arr[0] }} Qty: {{ pair_arr[1] }} <br />
{% endfor %}
{%assign my_str='a:3,b:1,c:2,d:2,e:2,f:2%}
{%assign my_arr=my_str | split:','%}
{我的\u arr%中的对\u str为%1}
{%assign pair_arr=pair_str | split:':'%}
ID:{pair_arr[0]}数量:{{pair_arr[1]}}
{%endfor%}
这篇博文也是关于液体阵列主题的有趣读物: