获取过滤后的 JSON 值 Scala Play
Get filtered JSON value Scala Play
我使用 scala play 并使用 WS 从 URL 获得响应。
我的 JSON 示例:
[
{
"object": "001",
"object-description": "MODEL",
"criterion": "TW3",
"criterion-description": "MODELE X07"
},
{
"object": "002",
"object-description": "TYPE",
"criterion": "STANDA",
"criterion-description": "STANDARD TYPE"
}, ...
我只想获取 "criterion" 字段,其中 "object" 等于“002”。因此,在此示例中,值 "STANDA".
测试:
ws.url(
url)
.get()
.map { response =>
Right((response.json \ "object="002"" \ "criterion").map(_.as[String]))
}
我该怎么做?
感谢您的帮助。
您可以使用自动格式化程序将整个响应转换为 Scala 类,然后对其进行操作。
case class Data(`object`: String, criterion: String)
implicit val dataRead = Json.reads[Data]
response.json.as[List[Data]]
.filter(_.`object` == "002")
.map(_.criterion)
我使用 scala play 并使用 WS 从 URL 获得响应。
我的 JSON 示例:
[
{
"object": "001",
"object-description": "MODEL",
"criterion": "TW3",
"criterion-description": "MODELE X07"
},
{
"object": "002",
"object-description": "TYPE",
"criterion": "STANDA",
"criterion-description": "STANDARD TYPE"
}, ...
我只想获取 "criterion" 字段,其中 "object" 等于“002”。因此,在此示例中,值 "STANDA".
测试:
ws.url(
url)
.get()
.map { response =>
Right((response.json \ "object="002"" \ "criterion").map(_.as[String]))
}
我该怎么做?
感谢您的帮助。
您可以使用自动格式化程序将整个响应转换为 Scala 类,然后对其进行操作。
case class Data(`object`: String, criterion: String)
implicit val dataRead = Json.reads[Data]
response.json.as[List[Data]]
.filter(_.`object` == "002")
.map(_.criterion)