我正在尝试从REST-API访问数据并使用play框架解析响应(json)。以下是我对REST Call的回复。
[
{"time":"2018-01-01","query":"select..","service":"sql"},
{"time":"2018-01-01","query":"select..","service":"sql"},
{"time":"2018-01-01","query":"select..","service":"sql"}
]
我想选择时间,服务并将其作为一行,如下所示,
2018-01-01,sql
2018-01-01,sql
2018-01-01,sql
我用\来获取时间,但它返回List Buffer。
val json = Json.parse(response_from_rest)
println((json \\ "time"))
任何人都可以帮助我如何选择多个字段为单行。
答案 0 :(得分:1)
尝试:
json.as[List[JsValue]].map(row =>
(row \ "time").as[LocalDate] -> (row \ "service").as[String]
)
// List[(LocalDate,String)]
.as
方法将json转换为列表,.map
方法适用用元组替换每个对象。
答案 1 :(得分:0)
val parsedJson = json.validate[Seq[JsValue]].get
parsedJson.map(x => x.\("times") +","+x.\("service")).foreach(println)
使用Validate并通过map函数迭代oved。