Я пытаюсь сопоставить класс case Scala с JSON, используя Play 2.x. Это работает для простых версий класса case, но не там, где есть Seq или List объектов: тогда я получаю ошибки "неявный формат" и "отсутствие ошибок при использовании unapply".
Код, который я использую для этого, следующий:
case class Book(title: String, authors: Seq[Author])
case class Author(name: String)
Я использовал макрос Json.format
для создания Reads и Writes для этого:
implicit val bookFormat = Json.format[Book]
implicit val authorFormat = Json.format[Author]
Но теперь, когда я компилирую свой код, я получаю следующую ошибку:
Error:(25, 40) Play 2 Compiler:
/Users/erikp/Userfiles/projects/play/booksearch/app/models/user.scala:25: No implicit format for Seq[models.Author] available.
implicit val bookFormat = Json.format[Book]
^
Без Seq он работает красиво, но с Seq он терпит неудачу. Я попытался добавить implicit val authorsFormat = Json.format[Seq[Author]]
к неявным преобразователям, но это не имеет никакого эффекта.