Предположим, у меня есть простой массив JSON вроде этого:
[
{
"name": "Alex",
"age": 12
},
{
"name": "Peter"
}
]
Обратите внимание, что у второго объекта нет поля age
.
Я использую JSON4S для запроса JSON (используя стиль for-comprehension
для извлечения значений):
for {
JArray(persons) <- json
JObject(person) <- persons
JField("name", JString(name)) <- person
JField("age", JString(age)) <- person
} yield new Person(name, age)
Проблема для меня в том, что это выражение пропустит второй объект (тот, у которого отсутствует поле age
). Я не хочу пропускать такие объекты; Мне нужно получить null
или лучше None
.
В этом ответе приведен пример того, как работать со значениями null
в JSON с помощью настраиваемых экстракторов, но он работает, только если поле присутствует и если его значение null
.