我想从URL "stations"
的下面JSON中的键"base"
返回值https://samples.openweathermap.org/data/2.5/weather?q=London,uk&appid=b6907d289e10d714a6e88b30761fae22
。如何在Scala中做到这一点?
这是我的尝试。
import scalaj.http._
import play.api.libs.json.{JsValue, Json}
object JSON {
def convertToJson(): String = {
val url: String = "https://samples.openweathermap.org/data/2.5/weather?q=London,uk&appid=b6907d289e10d714a6e88b30761fae22"
val response: String = Http(url).asString.body
val parsed: JsValue = Json.parse(response)
parsed.get(base)
}
}
答案 0 :(得分:0)
您可以使用\
方法返回与字段名称相对应的属性
val result: JsLookupResult = parsed \ "base"
如果您希望将结果作为字符串,则可以使用as[String]
转换
println(result.as[String])
它将打印“ station”,但如果它不是真正的String,则会抛出异常
如果缺少值,则可以使用模式匹配:
result match {
case JsDefined(v) => println(v.toString) // will print "stations"
case undefined: JsUndefined => println(undefined.validationError) // prints error in case missing value
}