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

Azure Liquid模板JSON转JSON:如何提取指定自定义字段集?

Dot Liquid模板:提取userDefinedFields指定字段并保留其他数据

针对你的需求,这里提供一个Dot Liquid模板,既能提取userDefinedFields数组中的Reason、Number、Bill、Key四个字段(不存在则设为null),又能保留data节点下的其他所有字段:

{
  "data": {
    {% comment %} 遍历userDefinedFields,将所有字段存入临时对象 {% endcomment %}
    {% assign udf = {} %}
    {% for field in data.userDefinedFields %}
      {% assign key = field | keys | first %}
      {% assign value = field[key] %}
      {% assign udf = udf | merge: { (key): value } %}
    {% endfor %}

    {% comment %} 保留data下除userDefinedFields外的原有字段 {% endcomment %}
    {% for key in data %}
      {% if key != "userDefinedFields" %}
        "{{ key }}": {{ data[key] | json }},
      {% endif %}
    {% endfor %}

    {% comment %} 输出目标字段,无对应值则设为null {% endcomment %}
    "Reason": {{ udf.Reason | default: null | json }},
    "Number": {{ udf.Number | default: null | json }},
    "Bill": {{ udf.Bill | default: null | json }},
    "Key": {{ udf.Key | default: null | json }}
  }
}

代码说明:

  1. 临时对象存储字段:先创建空对象udf,遍历userDefinedFields数组,把每个字段的键值对合并到udf中。这里假设数组中的每个元素是单键值对结构(如{"Reason": "退款"}),如果你的结构是每个元素包含name和value字段,只需把key和value的赋值逻辑改成field.name和field.value即可。
  2. 保留原有字段:遍历data节点的所有键,排除userDefinedFields,将其他字段原样输出,json过滤器用来保证输出的JSON格式合法。
  3. 处理缺失字段:使用default: null过滤器,当udf中不存在对应字段时,自动填充为null,同样通过json过滤器确保值的格式符合JSON规范。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 20:30:42