こんにちは、ネストされた JSON データをビューに表示しようとしています。これは、API から応答を受け取ったときに高度な REST クライアントに表示されるのと同じです。
基本的に私が求めているのと同じことを尋ねるこの質問を見つけました。ただし、結果を 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 をネストされた方法で表示するための他の提案はありますか?
ありがとう!