objeto - ¿Cómo convertir un valor JSON JString en una cadena normal en Lift?
javascript ${} (4)
Creo que la mejor manera es usar match:
val x = ... (whatever, maybe it''s a JString)
x match {
case JString(s) => do something with s
case _ => oops, something went wrong
}
Teniendo un valor jString : JString
que contiene una cadena "abc"
dentro, obtengo "JString(abc)" : String
si llamo jString.toString
. ¿Cómo obtengo "abc" : String
lugar?
Esto se me preguntó hace un rato, pero quería un ayudante simple de una línea que obtuviera mi cadena en el contexto de una expresión, así que escribí esta pequeña cosa dentro de un objeto llamado Get:
object Get {
def string(value: JValue): String = {
val JString(result) = value
result
}
...
}
De esta manera puedo hacerlo, por ejemplo, val myString = Get.string (jsonStringValue)
Para extraer un valor de JValue, puede utilizar cualquier método descrito aquí: ¿Cuál es la forma más sencilla de analizar JSON en Scala?
Por ejemplo:
json.extract[String]
Puede usar la función ''render'' para convertir cualquier JValue a formato imprimible. Entonces, ''bonito'' o ''compacto'' lo convertirán en una cadena.
compact(render(json))
o
pretty(render(json))
val jstring=JString("abc")
implicit val formats = net.liftweb.json.DefaultFormats
System.out.println(jstring.extract[String])