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

Liquid开发:如何从对象中排除指定属性或修改指定属性值

方案1:过滤排除指定属性

原生Liquid没有直接删除对象属性的内置方法,你可以通过遍历属性键的方式构建不含指定属性的新对象:

{% comment %} 替换为你自己的原始Liquid对象 {% endcomment %}
{% assign original_obj = your_object %}
{% comment %} 要排除的属性列表,多个用英文逗号分隔 {% endcomment %}
{% assign excluded_attrs = "description" | split: "," %}
{% comment %} 初始化空对象 {% endcomment %}
{% assign filtered_obj = "" | parse_json: "{}" %}

{% for attr in original_obj.keys %}
  {% unless excluded_attrs contains attr %}
    {% assign filtered_obj = filtered_obj | add_field: attr, original_obj[attr] %}
  {% endunless %}
{% endfor %}

如果你的运行环境不支持add_field过滤器,可以先将对象转成JSON字符串,删除对应属性后再转回对象使用

方案2:复制对象并清空description值

这个方案兼容性最高,适合不需要彻底删除属性、只需要清空指定属性值的场景:

{% comment %} 复制原始对象 {% endcomment %}
{% assign new_obj = original_obj | clone %}
{% comment %} 清空description属性 {% endcomment %}
{% assign new_obj.description = "" %}

如果环境不支持clone过滤器,可以用遍历的方式复制对象:

{% assign new_obj = "" | parse_json: "{}" %}
{% for attr in original_obj.keys %}
  {% assign new_obj = new_obj | add_field: attr, original_obj[attr] %}
{% endfor %}
{% assign new_obj.description = "" %}
  • 如果你需要同时修改多个属性的值,只需要在赋值环节增加对应属性的赋值语句即可
  • Shopify等限制对象操作的Liquid环境优先选用该方案,避免属性删除操作不生效的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 16:15:01