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

时间:2011-10-16 02:01:25

标签: string json scala lift lift-json

如果我呼叫jString : JString,我的"abc"字符串中包含"JString(abc)" : String字符串,我会jString.toString。我如何获得"abc" : String

4 个答案:

答案 0 :(得分:18)

要从JValue中提取值,您可以使用此处描述的任何方法:What is the most straightforward way to parse JSON in Scala?

例如:

json.extract[String]

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

compact(render(json))

pretty(render(json))

答案 1 :(得分:7)

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

答案 2 :(得分:6)

我认为最好的方法是使用匹配:

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

x match {
  case JString(s) => do something with s
  case _          => oops, something went wrong
}

答案 3 :(得分:1)

这是前一段时间的问题,但是我想要一个简单的单行助手,它可以在表达式的上下文中为我获取字符串,所以我在一个名为Get的对象中写了这个小东西:

  object Get {
    def string(value: JValue): String = {                                                                                                               
      val JString(result) = value                                                                                            
      result                                                                                                                              
    }
  ...
  }

这样我就可以做,例如,val myString = Get.string(jsonStringValue)