如何在Lift中将JSON JString值转换为普通字符串



如果有一个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(

相关内容

  • 没有找到相关文章