Не удается разрешить Writes[T] во время компиляции в Play Json

Я пытаюсь сделать универсального Writer, чтобы получить строковое представление json с Play Json. То, что у меня есть до сих пор,

import com.twitter.finatra.http.Controller
import play.api.libs.json.{Json, Writes}

trait MyController extends Controller {
  def handle(request: AnyRef) =
    response
     .ok
     .json(createJsonResponse(manage(request)))
     .toFuture

   def manage[T : Writes](request: AnyRef): T

  // There should be an implicit Writes[T] in scope
   def createJsonResponse[T : Writes](data: T) = Json.stringify(Json.toJson[T](data))
}

я имею case class TotalsForResponse(issuer: String, total: Int) определены и

  object JsonFormatters {
   implicit val totalsForResponseWrites = Json.format[TotalsForResponse]
  }

Это должно предоставить мне при компиляции неявный Writes[T] в области видимости. В одном из моих контроллеров у меня есть

def manage[T : Writes](request: AnyRef) = request match {

case TotalInvestorsForRequest(issuer) =>
  TotalsForResponse(issuer,
    TitleSectionDBHandler.totalInvestorsFor(issuer))
  .asInstanceOf[T]
}

что приводит к diverging implicit expansion for type play.api.libs.json.Writes[Nothing] во время компиляции. Это было взято из этого примера, который я не мог заставить его работать. Есть идеи?

1 ответ

В приведенном вами примере вы забыли добавить import JsonFormatters._ принести Format[T] в сферу.

Другие вопросы по тегам