我正在使用 Scala Play 2.7.2 并已阅读ScalaJsonTransformers和ScalaJson。调用 JSON API 后,我得到如下(简化的 MCVE)结果:
{
"type": "searchset",
"total": 5,
"entry": [
{
"start": "2019-06-07T09:00:00",
"end": "2019-06-07T11:00:00",
"id": "55"
},
{
"start": "2019-06-07T13:00:00",
"end": "2019-06-07T15:00:00",
"id": "56"
},
{
"start": "2019-06-07T16:00:00",
"end": "2019-06-07T17:00:00",
"id": "60"
},
{
"start": "2019-06-10T11:00:00",
"end": "2019-06-10T12:00:00",
"id": "58"
},
{
"start": "2019-06-11T14:00:00",
"end": "2019-06-11T15:00:00",
"id": "61"
}
]
}
我想过滤结果并仅选择满足条件的结果,例如,过滤掉结束日期大于某个日期的结果val to = new DateTime("2019-06-10T00:00:00")
并做一些事情:
(json \\ "end").filter(new DateTime(_).isBefore(to.toDate.getTime))...
但这不起作用,因为结果是选择而不是整个 json 节点,而且它也离开了外部。
解决方案应输出结果:
{
"type": "searchset",
"total": 3,
"entry": [
{
"start": "2019-06-07T09:00:00",
"end": "2019-06-07T11:00:00",
"id": "55"
},
{
"start": "2019-06-07T13:00:00",
"end": "2019-06-07T15:00:00",
"id": "56"
},
{
"start": "2019-06-07T16:00:00",
"end": "2019-06-07T17:00:00",
"id": "60"
}
}
如何使用 Play JSON 来做到这一点?