21

如果我jString : JString调用. "abc"_ 我该如何取而代之?"JString(abc)" : StringjString.toString"abc" : String

4

4 回答 4

18

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

例如:

json.extract[String]

您可以使用“渲染”功能将任何 JValue 转换为可打印格式。然后“漂亮”或“紧凑”将其转换为字符串。

compact(render(json))

或者

pretty(render(json))
于 2011-10-16T09:06:18.137 回答
7
val jstring=JString("abc")
implicit val formats = net.liftweb.json.DefaultFormats 
System.out.println(jstring.extract[String])
于 2012-03-27T00:08:40.050 回答
7

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

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

x match {
  case JString(s) => do something with s
  case _          => oops, something went wrong
}
于 2012-06-12T00:34:03.723 回答
1

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

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

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

于 2015-03-10T22:29:47.953 回答