scala - Serialize Map[String, Any] con spray json
spray-json (2)
¿Cómo serializo Map [String, Any] con spray-json? lo intento
val data = Map("name" -> "John", "age" -> 42)
import spray.json._
import DefaultJsonProtocol._
data.toJson
Cannot find JsonWriter or JsonFormat type class for scala.collection.immutable.Map[String,Any]
.
Aquí hay un convertidor implícito que solía hacer esta tarea:
implicit object AnyJsonFormat extends JsonFormat[Any] {
def write(x: Any) = x match {
case n: Int => JsNumber(n)
case s: String => JsString(s)
case b: Boolean if b == true => JsTrue
case b: Boolean if b == false => JsFalse
}
def read(value: JsValue) = value match {
case JsNumber(n) => n.intValue()
case JsString(s) => s
case JsTrue => true
case JsFalse => false
}
}
Se adaptó de esta publicación en el grupo de usuarios de Spray, pero no pude obtener y no tuve que escribir secuencias y mapas anidados en Json, así que los saqué.
Otra opción, que debería funcionar en su caso, es
data.parseJson.convertTo[Map[String, JsValue]]