2013-04-03 2 views
2

Я играю с этим часами. Я пробовал разные методы создания чтения, и я просто полностью в тупике.ошибка несоответствия типа при создании Reads for Play 2.1

Я на Play 2.1.0 и Scala 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

, это выглядит совершенно иначе, чем вся документация ... lol. Но, похоже, это сработало. – Commander

 Смежные вопросы

  • Нет связанных вопросов^_^