JSON для нулевой проверки POJO полей - PullRequest
0 голосов
/ 04 августа 2020

У меня очень большой комплекс 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 для каждой строки? Скажу прямо, но не могу понять, как это сделать.

1 Ответ

0 голосов
/ 04 августа 2020

Вы должны объединить оператор безопасной навигации и оператор elvis .

Если это вызывает ошибку при спуске полезной нагрузки:

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

Измените его на:

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

(или, если null подходит, оставьте часть ?:...)

...