JSON 对字段进行 POJO 空检查

JSON to POJO null check for fields

我有一个非常大的复合体 JSON,我正在将其映射到一个简单的 POJO(只有必填字段)。在 groovy 中,JSON 被解释为 Map.

MyObject build(Map<String, Object> payload){

...
    o.name = payload.a.b.name
    o.gender = payload.c.d.e.gender

return o
}

字段是可选的,不存在时抛出 NullPointerException。如何在不为每一行放置 try-catch 的情况下映射到“”?我很直截了当,但不知道该怎么做。

您可以结合使用 safe navigation 运算符和 elvis 运算符。

如果在沿着负载行走时抛出:

o.gender = payload.c.d.e.gender

改为:

o.gender = payload?.c?.d?.e?.gender ?: Gender.UNSET

(或者如果 null 可以,则省略 ?:... 部分)