私はscalaとplayframeworkに不慣れですが、これまでのところ素晴らしいです。データのリストをjson(または実際には複雑な構造)に変換する方法を理解するのに問題があります。これは実際の例ではありませんが、これが私がやろうとしていることです。データベースからデータを取得します。
scala> val result:List[(Long,String)] = DB.withConnection { implicit c =>
SQL("select * from users").as(
long("id")~str("uid") map(flatten)*)
}
result: List[(Long, String)] = List((3,397a73ee5150429786863db144341bb3), (4,2850760dc9024c16bea6c8c65f409821), (5,636ee2bf758e4f699f27890ac55d7db2))
それをjsonに変換して返すことができるようにしたいと思います。このドキュメントに基づくと、結果を繰り返し処理してtoJsonに電話する必要があるようです。
http://www.playframework.org/documentation/2.0/ScalaJson
しかし、実際には私はそれを行うのに苦労しています。これも正しいアプローチですか?これを簡単にするいくつかのscalaの概念はありますか?ケースクラスを使用した例をいくつか見ますが、まだその概念に頭を悩ませていません。
私はこれがうまくいくとは思っていませんが、概念的にはこのようなことをしようとしていると思います
scala> toJson(Map("response" -> result))
<console>:27: error: No Json deserializer found for type scala.collection.immutable.Map[java.lang.String,List[(Long, String)]]. Try to implement an implicit Writes or Format for this type.
toJson(Map("response" -> result))
ありがとう