遍历 JSON
Iterate over JSON
我在根据 REST API 的响应迭代 JSON 对象时遇到问题。
这是我使用的代码:
<#assign row=table_subject.rows[0]>
<#if row?is_sequence>
<#list row as c>
${c}
</#list>
<#elseif row?is_hash_ex>
<#list row?keys as key>
<#list row[key] as rk>
<#list rk?keys as rkk>
${key} - ${rkk}
</#list>
</#list>
</#list>
<#elseif row?is_string>
${row}
</#if>
For "#list" list source: Expected a sequence or collection, but this
has evaluated to a number (wrapper: f.t.SimpleNumber): ==> row[key]
... ---- FTL stack trace ("~" means nesting-related): - Failed at: #list row[key] as rk Reached through ...
有什么建议吗?
row[key]
给出键值对的值,因此它不可(或不一定)可列。您也不需要两个 #list
-s 相互嵌套:您已经有了键 (key
) 和值 (row[key]
)。但是有一种更好的列出哈希的方法(自 FreeMarker 2.3.25 起):
<#list row as key, value>
${key} - ${value}
</#list>
我在根据 REST API 的响应迭代 JSON 对象时遇到问题。
这是我使用的代码:
<#assign row=table_subject.rows[0]>
<#if row?is_sequence>
<#list row as c>
${c}
</#list>
<#elseif row?is_hash_ex>
<#list row?keys as key>
<#list row[key] as rk>
<#list rk?keys as rkk>
${key} - ${rkk}
</#list>
</#list>
</#list>
<#elseif row?is_string>
${row}
</#if>
For "#list" list source: Expected a sequence or collection, but this has evaluated to a number (wrapper: f.t.SimpleNumber): ==> row[key] ... ---- FTL stack trace ("~" means nesting-related): - Failed at: #list row[key] as rk Reached through ...
有什么建议吗?
row[key]
给出键值对的值,因此它不可(或不一定)可列。您也不需要两个 #list
-s 相互嵌套:您已经有了键 (key
) 和值 (row[key]
)。但是有一种更好的列出哈希的方法(自 FreeMarker 2.3.25 起):
<#list row as key, value>
${key} - ${value}
</#list>