2013-04-03 50 views
2

我一直在玩這個小時。我一直在嘗試創建閱讀的不同方法,我完全陷入了困境。類型不匹配錯誤時創建讀取播放2.1

我在Play 2.1.0Scala 2.10.1

錯誤:

type mismatch; found : models.Registration.type required: play.api.libs.json.Reads[?] 

代碼:

package models 

import play.api.libs.json._ 
import play.api.libs.functional.syntax._ 

case class Registration(
     user: (String,String,String,String,String,String) 
) 

object RegistrationHelper { 
    implicit val regReads: Reads[Registration] = (
     (__ \ "user").read(
     (__ \ "id").read[String] and 
     (__ \ "username").read[String] and 
     (__ \ "first_name").read[String] and 
     (__ \ "last_name").read[String] and 
     (__ \ "email_address").read[String] and 
     (__ \ "user_avatar").read[String] 
     tupled 
    ) 
    )(Registration) //!!ERROR ON THIS LINE 
} 

JSON:

{ 
    user: { 
    id: "35fc8ba5-56c3-4ebe-9a21-489a1a207d2e", 
    username: "flastname", 
    first_name: "Firstname", 
    last_name: "Lastname", 
    email_address: "[email protected]", 
    user_avatar: "http://blog.ideeinc.com/wp-content/uploads/2010/04/tineye-robot.jpg" 
    } 
} 
+0

您應該嘗試升級到2.1.1,對Json和伴侶對象(JSON宏修復和改進)有一些修正。並且總是使用'Registration.apply _' –

回答

1

這應該工作:

implicit val regReads: Reads[Registration] = (__ \ "user").read(
    (__ \ "id").read[String] and 
     (__ \ "username").read[String] and 
     (__ \ "first_name").read[String] and 
     (__ \ "last_name").read[String] and 
     (__ \ "email_address").read[String] and 
     (__ \ "user_avatar").read[String] 
     tupled 
) map Registration.apply _ 

this問題以獲取更多信息。

+0

,這看起來與所有的文檔大不相同......大聲笑。但它似乎奏效了。 – Commander