如何在Scala视图页面中迭代JsArray(值映射不是play.api.libs.json.JsArray的成员)

时间:2017-01-13 05:45:28

标签: arrays json scala-template

我在Scala视图页面上使用JsArray,我尝试使用for循环迭代它,但在Scala视图页面上抛出错误,在这里我附加了我的代码,我该如何解决它。

@(jsonArrValue: play.api.libs.json.JsArray)

<html>
 <body>
  <table>
   <thead>
    <tr>
     <th>Details</th>
    </tr>
   </thead>
   <tbody>
    <tr>
       @for(x <- jsonArrValue){
          <td>@x</td>
        }

    </tr>
   </tbody>
  </table>
 </body>
</html>

错误:

value map is not a member of play.api.libs.json.JsArray

jsonArrValue包含:

[{"empName":"xxx","age":"23","empNo":"123"},{"empName":"yyy","age":"24","empNo":"1234"}] 

1 个答案:

答案 0 :(得分:2)

虽然JsArray这个名字可能暗示它是一种收藏品,但事实并非如此。定义:

case class JsArray(value: Seq[JsValue] = List()) extends JsValue with Product with Serializable

清楚地表明了这一点。为什么 for comprehension 不起作用。

我认为迭代它的最好方法是调用它的value()方法转换为Seq [JsValue],然后用于理解。