迭代JSON

时间:2018-05-24 07:33:06

标签: json freemarker

我在从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>
  

对于&#34;#list&#34; list source:预期序列或集合,但是这个   已评估为数字(包装器:f.t.SimpleNumber):==&gt;行[关键]   ... ---- FTL堆栈跟踪(&#34;〜&#34;表示与嵌套相关): - 失败于:#list row [key]为rk到达...

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

row[key]给出键值对的值,因此它不是(或不一定)可列表的。您不需要在其中嵌套两个#list - s:您已经拥有密钥(key)和值(row[key])。但是有一种更好的列出哈希的方法(自FreeMarker 2.3.25起):

<#list row as key, value>
   ${key} - ${value}
</#list>