簡體   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