我有两个函数,一个根据他的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格式以获取所有用户?我需要添加地图吗?如果是这样,怎么样?
谢谢
答案 0 :(得分:0)
默认情况下,Play仅包含Scala集合的序列化程序。 这应该使它工作:
import scala.collection.JavaConverters._
Json.toJson(users.asScala)
答案 1 :(得分:0)
好的我发现:.asScala解决了问题