21

内部に文字列を保持するjString : JString値があり、 を呼び出すと得られます。代わりにどうやって入手できますか?"abc""JString(abc)" : StringjString.toString"abc" : String

4

4 に答える 4

18

JValue から値を抽出するには、ここで説明されている任意の方法を使用できます: Scala で JSON を解析する最も簡単な方法は何ですか?

例えば:

json.extract[String]

「render」関数を使用して、任意の JValue を印刷可能な形式に変換できます。次に、「pretty」または「compact」のいずれかがそれを文字列に変換します。

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

これは少し前に尋ねられましたが、式のコンテキストで文字列を取得する単純な 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 に答える