我正在使用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
连接时,会导致网址格式不正确。
可以通过简单地从开头和结尾删除双引号来解决,但是有没有更好/更容易/更干净的方法来直接获取没有双引号的值?
答案 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