FreeMarker-包含int的Handeling Json

问题描述 投票:0回答:1

我正在尝试创建一个脚本,该脚本将检查id并导出其名称,但遇到以下情况;


FTL堆栈跟踪(“〜”表示与嵌套相关:]

-在以下位置失败:#assign services = {“ externalId”:1 [在第1行第1列的无名模板中]

<#list [services] as st><#if st.externalId == externalId>${st.name}</#if>
<#list st.children as nd<#if nd.externalId == externalId>${nd.name}</#if>
<#list nd.children as rd><#if rd.externalId == externalId>${rd.name}</#if>
<#list rd.children as th><#if th.externalId == externalId>${th.name}</#if>
<#list th.children as ths><#if ths.externalId == externalId>${ths.name}</#if>
<#list ths.children as thb><#if thb.externalId == externalId>${thb.name}</#if>
</#list></#list></#list></#list></#list></#list>`    

如果所有externalID都有数字,该脚本就可以正常工作,但是当它为null时也可以为null,但我得到一个错误;

<#assign services=
{
"externalId": 1,
"name": "one",
"children": [
    {
        "externalId": 2,
        "name": "two",
        "children": [ 
            {
                "externalId": null,
                "name": "three",
                "children": [
                   {
                             "externalId": 4,
                             "name": "four",
                             "children": [
                                {
                                         "externalId": 5,
                                         "name": "five",
                                         "children": []
                                }         ]
                    }       ]
            }]
     }]
}>      

我正在测试https://try.freemarker.apache.org/

请帮助!

java json loops freemarker
1个回答
0
投票

在FreeMarker中,您(几乎)总是必须指定一个期望出现null -s的默认值。像:nd.externalId! == external会将nd.externalId视为空字符串。或者,当null${th.name!'null'}时,null将打印th.name

© www.soinside.com 2019 - 2024. All rights reserved.