2017-01-27 9 views
1

У меня есть набор тематических объектов, унаследованный от признака, как показано ниже:Play Framework JSON формат для случая Объекты

sealed trait UserRole 
    case object SuperAdmin extends UserRole 
    case object Admin extends UserRole 
    case object User extends UserRole 

Я хочу, чтобы сериализовать это как JSON, и я просто использовал механизм Формат:

implicit val userRoleFormat: Format[UserRole] = Json.format[UserRole] 

Но, к сожалению, компилятор не устраивает, и он говорит:

No unapply or unapplySeq function found 

Что плохого в моем случае объекты?

ответ

1

Хорошо, я понял, что нужно делать!

Здесь:

implicit object UserRoleWrites extends Writes[UserRole] { 
    def writes(role: UserRole) = role match { 
     case Admin => Json.toJson("Admin") 
     case SuperAdmin => Json.toJson("SuperAdmin") 
     case User => Json.toJson("User") 
    } 
    } 
+0

Дело не в том случае, объект, но о запечатана чертах/семья, которая не поддерживается макросом в последней версии, но приходит в следующем: https: // github.com/playframework/play-json/pull/16 – cchantep

+0

Этот запрос pull решает проблему для классов case, но не для объектов case – gcaliari

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

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