如果有一个jString : JString
值,其中包含一个"abc"
字符串,那么如果我调用jString.toString
,就会得到"JString(abc)" : String
。如何获取"abc" : String
?
要从JValue中提取值,可以使用这里描述的任何方法:在Scala中解析JSON最简单的方法是什么?
例如:
json.extract[String]
您可以使用"render"函数将任何JValue转换为可打印格式。然后"漂亮"或"紧凑"会将其转换为字符串。
compact(render(json))
或
pretty(render(json))
val jstring=JString("abc")
implicit val formats = net.liftweb.json.DefaultFormats
System.out.println(jstring.extract[String])
我认为最好的方法是使用match:
val x = ... (whatever, maybe it's a JString)
x match {
case JString(s) => do something with s
case _ => oops, something went wrong
}
这是不久前提出的问题,但我想要一个简单的单行帮助程序,它可以在表达式的上下文中为我获取字符串,所以我在一个名为get:的对象中写了这个小东西
object Get {
def string(value: JValue): String = {
val JString(result) = value
result
}
...
}
这样我就可以了,例如,val myString=Get.string(jsonStringValue(