如何在 Liquid 模板中处理 json 字典?
How to handle json dictionary in Liquid templates?
我对 Liquid 模板比较陌生,但我似乎没有找到一种方法来遍历 json 中的字典并访问不同的值。
免责声明:我正在为 VSCode.
使用 Shopify Liquid Preview 扩展
输入json文件:
输入文件包含两个属性:CustomerId
和 Transactions
,即 'dictionary' 属性,包含 KeyValuePairs 列表。我想遍历 Transactions 集合并输出 TransactionValue
属性。
{
"CustomerId": 13,
"Transactions": {
"1": {
"Id": "1",
"TransactionValue": 1000
},
"2": {
"Id": "2",
"TransactionValue": 207.47
}
}
}
预期输出:
<h1>Customer 13</h1>
<ul>
<li>1000</li>
<li>207.47</li>
</ul>
当前尝试
我可以很容易地循环集合,但是我不清楚如何访问当前事务的实际属性。 None 以下作品。当只是输出变量时,它被打印成这样: 1,[object Object]
<ul>
{% for trx in Transactions %}
<li>{{trx}}</li>
<li>{{trx.Key}}</li>
<li>{{trx.Value}}</li>
<li>{{trx.Object}}</li>
{% endfor %}
</ul>
我无法真正控制输入 json,所以我希望找到一个好的方法来完成这项工作。
谢谢
在大多数 Liquid 风格中,应该可以像这样按名称引用对象字段:
{{ Transactions["1"].TransactionValue }}
然后就是从某个地方获取所有已知的 transactionId。如果它们不能作为数组使用,那么肮脏的解决方案可能是解析原始传入 JSON,例如像那样:
{% assign transactionIds = Transactions | split: "\"Id\": \"" %}
<ul>
{% for id in transactionIds %}
{% if id[0] != "{" %}
{% assign realId = id | split: "\"" | first %}
<li>
{{ Transactions[realId].TransactionValue }}
</li>
{% endif %}
{% endfor %}
</ul>
我对 Liquid 模板比较陌生,但我似乎没有找到一种方法来遍历 json 中的字典并访问不同的值。 免责声明:我正在为 VSCode.
使用 Shopify Liquid Preview 扩展输入json文件:
输入文件包含两个属性:CustomerId
和 Transactions
,即 'dictionary' 属性,包含 KeyValuePairs 列表。我想遍历 Transactions 集合并输出 TransactionValue
属性。
{
"CustomerId": 13,
"Transactions": {
"1": {
"Id": "1",
"TransactionValue": 1000
},
"2": {
"Id": "2",
"TransactionValue": 207.47
}
}
}
预期输出:
<h1>Customer 13</h1>
<ul>
<li>1000</li>
<li>207.47</li>
</ul>
当前尝试
我可以很容易地循环集合,但是我不清楚如何访问当前事务的实际属性。 None 以下作品。当只是输出变量时,它被打印成这样: 1,[object Object]
<ul>
{% for trx in Transactions %}
<li>{{trx}}</li>
<li>{{trx.Key}}</li>
<li>{{trx.Value}}</li>
<li>{{trx.Object}}</li>
{% endfor %}
</ul>
我无法真正控制输入 json,所以我希望找到一个好的方法来完成这项工作。
谢谢
在大多数 Liquid 风格中,应该可以像这样按名称引用对象字段:
{{ Transactions["1"].TransactionValue }}
然后就是从某个地方获取所有已知的 transactionId。如果它们不能作为数组使用,那么肮脏的解决方案可能是解析原始传入 JSON,例如像那样:
{% assign transactionIds = Transactions | split: "\"Id\": \"" %}
<ul>
{% for id in transactionIds %}
{% if id[0] != "{" %}
{% assign realId = id | split: "\"" | first %}
<li>
{{ Transactions[realId].TransactionValue }}
</li>
{% endif %}
{% endfor %}
</ul>