Spielen Sie eine Übereinstimmung mit 2.2, wenn ein impliziter Json-Konverter vorhanden ist

Ich habe alle meine Json-Konverter in eine Datei JsonUtil gestellt und dann eine convertToJson-Methode, die versucht, alle an json übergebenen Objekte zu konvertieren.

Grundsätzlich eine Struktur wie diese:

implicit val format_A = format[A]
implicit val format_B = format[B]

def convertToJson(o: Any): JsValue =
  o match {
    case a: A => Json.toJson(a)
    case b: B => Json.toJson(b)
    case a: Any => Logger.warn("could not convert to json: "+a); JsNull
  }

aber mit viel mehr Formatierern / Fällen. Ich möchte nicht alle diese Implicits importieren, wenn ich Konvertierungen benötige (aus verschiedenen Gründen). Gibt es eine Möglichkeit, eine Übereinstimmung zu finden, wenn eine gültige toJson-Konvertierung vorhanden ist, sodass ich nicht alle Fälle schreiben müsste?

mögen:

case o: ExistJsonConversion => Json.toJson(o)

Antworten auf die Frage(1)

Ihre Antwort auf die Frage