【问题标题】:Remove JSON array element in scala在scala中删除JSON数组元素
【发布时间】:2016-09-19 21:51:45
【问题描述】:

我有一个这样的 JSON 结果:

[
    {
        "id": 2202,
        "name": "name one",
        "phone": "+62888888",
        "email": "customer@gmail.com",
        "corporateId": null,
        "corporateName": null,
        "version": 119,
        "signupDate": "2016-01-28T00:00:00+07:00"
    },
    {
        "id": 2580,
        "name": "name two",
        "phone": "+628777777",
        "email": "customer2@gmail.com",
        "corporateId": null,
        "corporateName": null,
        "version": 119,
        "signupDate": "2016-01-28T00:00:00+07:00"
    }
]

如何删除一些元素,所以我有这样的新 JSON 结果(删除 corporateIdcorporateName):

[
    {
        "id": 2202,
        "name": "name one",
        "phone": "+62888888",
        "email": "customer@gmail.com",
        "version": 119,
        "signupDate": "2016-01-28T00:00:00+07:00"
    },
    {
        "id": 2580,
        "name": "name two",
        "phone": "+628777777",
        "email": "customer2@gmail.com",
        "version": 119,
        "signupDate": "2016-01-28T00:00:00+07:00"
    }
]

【问题讨论】:

标签: arrays json scala rest playframework


【解决方案1】:

有一些方法。其中之一JSON transformers

要删除corporateIdcorporateName,请使用Case 6: Prune a branch from input JSON

(__ \ "corporateId").json.prune andThen (__ \ "corporateName").json.prune

要删除每个 JsArray 元素,请使用 Reads.list:

Reads.list(
  (__ \ "corporateId").json.prune andThen (__ \ "corporateName").json.prune
)

复杂的变压器将是:

json.transform(
  Reads.list(
    (__ \ "corporateId").json.prune andThen (__ \ "corporateName").json.prune
  ).map(JsArray)
)

res3: play.api.libs.json.JsResult[play.api.libs.json.JsArray] = JsSuccess([{"id":2202,"name":"name one","phone":"+62888888","email":"customer@gmail.com","version":119,"signupDate":"2016-01-28T00:00:00+07:00"},{"id":2580,"name":"name two","phone":"+628777777","email":"customer2@gmail.com","version":119,"signupDate":"2016-01-28T00:00:00+07:00"}],)

【讨论】:

    猜你喜欢
    • 2018-01-16
    • 2020-10-21
    • 1970-01-01
    • 1970-01-01
    • 2019-05-09
    • 2016-04-26
    • 1970-01-01
    • 2021-12-25
    • 2018-10-14
    相关资源
    最近更新 更多