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

Freemarker提取属性值生成列表并实现列表对比的技术求助

在Freemarker中提取数组对象的value属性生成列表并对比的正确实现

语法错误排查

  • 直接访问数组的value属性:你的代码中step.http_0.customField1064是数组(对应示例中的customField1067),而非单个对象。直接调用.value会试图读取数组本身的value属性,而数组不存在该属性,这会引发运行时错误。
  • 错误的数组初始化方式:[(step.http_0.customField1064.value)]只会创建一个包含单个元素的数组(即便能正确读取,也仅能获取数组第一个元素的value),无法遍历所有元素提取value。

正确实现方法

要提取数组中所有对象的value属性生成新列表,需要遍历原数组逐个收集value值:

<#-- 1. 初始化空列表用于存储value值 -->
<#assign taskKeys = []>

<#-- 2. 遍历原数组,收集每个元素的value -->
<#list step.http_0.customField1067 as item>
    <#assign taskKeys = taskKeys + [item.value]>
</#list>

<#-- 验证生成的列表 -->
<#list taskKeys as key>
    ${key}
</#list>

如果需要和另一个列表(比如targetList)逐一对比,可嵌套列表遍历实现:

<#assign targetList = ["10100000", "10130000"]>

<#list taskKeys as taskKey>
    <#list targetList as target>
        <#if taskKey == target>
            匹配到值:${taskKey}
        <#else>
            ${taskKey} 与 ${target} 不匹配
        </#if>
    </#list>
</#list>

注意事项

如果原数组可能为空,建议添加非空判断避免报错:

<#if step.http_0.customField1067?? && step.http_0.customField1067?size > 0>
    <#-- 执行遍历收集逻辑 -->
<#else>
    无可用数据
</#if>

内容的提问来源于stack exchange,提问作者Marco Ferraz Vitara

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 04:05:01