你好,我想在视图中显示嵌套的JSON数据,就像从API接收响应时在Advanced REST Client中看到的那样。
我找到了这个问题,基本上是在问我现在正在问的东西;但是,我想使用Play Framework 2.3.x在视图中显示结果。我知道我需要一个递归函数来显示所有的json对象,所以我尝试在我的视图中使用可重用的块。这是我现在拥有的:
@(fromAPI: com.fasterxml.jackson.databind.JsonNode)
@import com.fasterxml.jackson.databind.JsonNode
@walkJsonTree(name: String, node: JsonNode) = {
@if(node.isObject()) {
@for(nodeEntry <- node.fields()) {
<li>@nodeEntry.getKey(): </li>
<ul>@walkJsonTree(nodeEntry.getKey(), nodeEntry.getValue())</ul>
}
}
@if(node.isArray()) {
@for(arrayNode <- node.fields()) {
<li>[List]: </li>
<ul>@walkJsonTree(arrayNode.getKey(), arrayNode.getValue())</ul>
}
}
@if(node.isValueNode()) {
<li>@node.asText()</li>
} else {
@* other *@
<li>@node.asText()</li>
}
}
@main("API Response") {
<div class="container">
<h3>API Response</h3>
<ul>
@walkJsonTree(null, fromAPI)
</ul>
</div>
}
很遗憾,这个没有正确显示JSON。它只基于这一行代码
<li>@nodeEntry.getKey(): </li>
显示第一个对象的名称。我做错了什么?有没有其他关于以嵌套方式显示JSON的建议?谢谢!