如何将JSON JString值转换为Lift中的普通String?

Iva*_*van 20 string json scala lift lift-json

如果我打电话,有一个jString : JString持有"abc"字符串的值.我该如何获得?"JString(abc)" : StringjString.toString"abc" : String

Jon*_*oni 18

要从JValue中提取值,您可以使用此处描述的任何方法:在Scala中解析JSON的最直接方法是什么?

例如:

json.extract[String]
Run Code Online (Sandbox Code Playgroud)

您可以使用'render'函数将任何JValue转换为可打印格式.然后'pretty'或'compact'会将其转换为String.

compact(render(json))
Run Code Online (Sandbox Code Playgroud)

要么

pretty(render(json))
Run Code Online (Sandbox Code Playgroud)


Win*_*tet 7

val jstring=JString("abc")
implicit val formats = net.liftweb.json.DefaultFormats 
System.out.println(jstring.extract[String])
Run Code Online (Sandbox Code Playgroud)


Vla*_*hev 6

我相信最好的方法是使用匹配:

val x = ... (whatever, maybe it's a JString)

x match {
  case JString(s) => do something with s
  case _          => oops, something went wrong
}
Run Code Online (Sandbox Code Playgroud)