有各种库可用于在Scala中使用JSON。我刚刚使用circe,并且可以高度推荐它。您可以结合使用optics轻松遍历和修改您的JSON,例如(例如,从网站复制):
import cats.syntax.either._
import io.circe._, io.circe.parser._
val json: Json = parse("""
{
"order": {
"customer": {
"name": "Custy McCustomer",
"contactDetails": {
"address": "1 Fake Street, London, England",
"phone": "0123-456-789"
}
},
"items": [{
"id": 123,
"description": "banana",
"quantity": 1
}, {
"id": 456,
"description": "apple",
"quantity": 2
}],
"total": 123.45
}
}
""").getOrElse(Json.Null)
import io.circe.optics.JsonPath._
// import io.circe.optics.JsonPath._
val _phoneNum = root.order.customer.contactDetails.phone.string
// _phoneNum: monocle.Optional[io.circe.Json,String] = [email protected]
val phoneNum: Option[String] = _phoneNum.getOption(json)
// phoneNum: Option[String] = Some(0123-456-789)
您也可以从案例类定义加密/解码器隐蔽JSON对象/或使用免费的样板,通用推导。
谢谢,你能让我知道我怎么读一个json文件。 –
将json4s'parse'与scala结合使用'Source.fromFile'或java'Files.readAllBytes',即'parse(Source.fromFile(“blah.json”)。mkString))' –