繁体   English   中英

Scala:没有找到Object类型的Json序列化器。 尝试为此类型实现隐式的Writes或Format

[英]Scala : No Json serializer found for type Object. Try to implement an implicit Writes or Format for this type

我有两个函数,一个函数根据其ID返回一个用户,第二个函数根据其ID返回多个用户,

第一个函数返回此数组: User[id=1, name="name1", lastName= "lastname1"]

第二个函数返回此信息: [User [id=1, name="name1", lastName= "lastname1"], User [id=2, name="name2", lastName= "lastname2"]]

我的第一个scala函数如下,并且json返回正确,并且我没有错误:

 Option(Try(id.toLong) match {
     case Success(id) => User.getUserById(1)
    }) match {  
      case Some(user) => Ok(Json.toJson(user) )
      case None => NotFound
    }

但是我的第二个scala函数返回一个错误(请参阅我的标题):

Option(Try(id.toList) match {
     case Success(id) => User.getUsersByIds(id) // id list is 1,2
    }) match {  
      case Some(users) => Ok(Json.toJson(users) )
      case None => NotFound
    }

我的getUsersByIds函数:

 public static synchronized ArrayList<User> getUsersByIds(List usersIDs) {


        String strSQL = "SELECT * FROM User WHERE ID IN" + usersIDs) ;

        ArrayList<User> userList = getArrayList(strSQL);

    return userList
    }

如何返回正确的json格式以获取所有用户? 我需要添加地图吗? 如果是这样,如何?

谢谢

默认情况下,Play仅具有Scala集合的序列化器。 这应该使其工作:

import scala.collection.JavaConverters._

Json.toJson(users.asScala)

好的,我找到了:.asScala解决了这个问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM