una soporta segundo rapida por optimizar mas lentas lenta hacer cuello cuantas consultas consulta como botella agilizar json scala playframework-2.1

json - soporta - optimizar consultas mysql explain



Cómo convertir json a la clase de caso cuando la clase de caso tiene solo un campo (4)

Basado en la respuesta de @ yokomizor, encontré la solución más simple para crear un Formatter para ser

case class Person(name: String) val personFormatter: Format[Person] = (__ / "full_name").format[String].inmap(Person.apply, unlift(Person.unapply))

En el juego 2.1, las lecturas se usan para asignar objetos a Json. Pero, ¿cómo puedo hacer esto cuando la clase de caso tiene solo un campo? El ideom que funciona para más campos no funciona, ya que con un campo ''y'' no se usa. Por lo tanto, no obtengo un FunctionBuilder.

El siguiente código me da una discrepancia de tipo. ¿Cómo puedo arreglar esto?

case class Data(stamm: Seq[String]) implicit val dataReads = ( (__ / "stamm").read(Reads.list[String]) )(Data)


Como contestó Julien, puedes leer clases de casos individuales usando esto:

case class Person(name: String) val personReads: Reads[Person] = (__ / "name").read[String].map { name => Person(name) }

Solo un complemento, si quieres escribir:

val personWrites: Writes[Person] = (__ / "name").write[String].contramap { (person: Person) => person.name }

O formato (leer y escribir):

val personFormat: Format[Person] = (__ / "name").format[String].inmap(name => Person(name), (person: Person) => person.name)

Para escribir y formatear, debe importar esto:

import play.api.libs.functional.syntax._


Incluso una solución más simple que la aceptada:

case class A(value: String) val reads = (__ / "key").read[String].map(A.apply)