JSON (String?) 值用引号 (" ") 打印
JSON (String?) value prints with quotes (" ")
val json: JsValue = Json.parse(input)
println(json)
打印:
{"id":1,"command":"connect"}
val command = Json.stringify((json \ "command").get)
println(command)
打印:
"connect"
我做错了什么,它打印 "connect"(带引号),而不是 connect?
val command = (json \ "command").get.toString
println(command)
还打印:
"connect"
command match {
case "connect" =>
println("connected")
case _ =>
println("unknown command")
打印:
unknown command
what am I doing wrong that it prints "connect" (with quotes), rather
than connect?
(json \ "command").get
returns JsValue。当您在 JsValue 对象上调用 Json.stringify
时,它会给出 JsValue 对象的字符串表示形式。 Json.stringify
不会将 JsValue 对象转换为 String type。使用 Json.stringify
并不等同于类型转换,它只是 JsValue 对象的文本表示。
从 playframework doc 开始,从 JsValue 转换为另一种类型的首选方法是使用其验证方法。您将需要如下内容:
val command = (json \ "command").validate[String].getOrElse("unknown command")
println(command) // prints connect without quotes
val json: JsValue = Json.parse(input)
println(json)
打印:
{"id":1,"command":"connect"}
val command = Json.stringify((json \ "command").get)
println(command)
打印:
"connect"
我做错了什么,它打印 "connect"(带引号),而不是 connect?
val command = (json \ "command").get.toString
println(command)
还打印:
"connect"
command match {
case "connect" =>
println("connected")
case _ =>
println("unknown command")
打印:
unknown command
what am I doing wrong that it prints "connect" (with quotes), rather than connect?
(json \ "command").get
returns JsValue。当您在 JsValue 对象上调用 Json.stringify
时,它会给出 JsValue 对象的字符串表示形式。 Json.stringify
不会将 JsValue 对象转换为 String type。使用 Json.stringify
并不等同于类型转换,它只是 JsValue 对象的文本表示。
从 playframework doc 开始,从 JsValue 转换为另一种类型的首选方法是使用其验证方法。您将需要如下内容:
val command = (json \ "command").validate[String].getOrElse("unknown command")
println(command) // prints connect without quotes