Vil*_*lis 16 json scala playframework playframework-2.2
我正在使用最新版本的Play Framework,它就是这样的JSON lib Json.toJson(obj).但是toJson无法将任何Scala对象转换为JSON,因为数据结构未知.有人建议使用案例转换,但这里我的Scala知识不足.数据来自数据库,但表的结构未知.
我应该在哪里进一步创建将这种未知数据结构转换为JSON?
鉴于您希望序列化为JSON的类型数量有限,这应该有效:
object MyWriter {
implicit val anyValWriter = Writes[Any] (a => a match {
case v:String => Json.toJson(v)
case v:Int => Json.toJson(v)
case v:Any => Json.toJson(v.toString)
// or, if you don't care about the value
case _ => throw new RuntimeException("unserializeable type")
})
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以通过在要序列化的位置导入隐式值来使用它Any:
import MyWriter.anyValWriter
val a: Any = "Foo"
Json.toJson(a)
Run Code Online (Sandbox Code Playgroud)