从json对象检索值时出现双引号问题

时间:2018-08-21 07:00:34

标签: json scala spray-json

我正在使用Spray json并按照以下方式将http response转换为json对象,并从中获取WebId键的值:

val json = http_response.body.parseJson
val web_id = json.asJsObject().getFields("WebId")
println(web_id(0))

http_response.body的输出为:{"WebId":"F1AbETkR"}

println的输出为:"F1AbETkR"

问题是web_id以包含double quotes的字符串形式出现,当与另一个http uri连接时,会导致网址格式不正确。

可以通过简单地从开头和结尾删除双引号来解决,但是有没有更好/更容易/更干净的方法来直接获取没有双引号的值?

1 个答案:

答案 0 :(得分:0)

问题是您试图“打印” JsValue,这会给您额外的双引号,您需要将JsValue转换为String

import spray.json._
// following import will provide implicit readers for `String` type
import DefaultJsonProtocol._

val jsonString = """{"WebId":"F1AbETkR"}"""

val webId = jsonString.parseJson.asJsObject.getFields("WebId")(0).convertTo[String]
// webId: String = F1AbETkR