Scala Объект Option внутри другого объекта Option

У меня есть модель, которая имеет несколько полей Option, которые содержат другие поля Option. Например:

case class First(second: Option[Second], name: Option[String])
case class Second(third: Option[Third], title: Option[String])
case class Third(numberOfSmth: Option[Int])

Я получаю эти данные из внешних JSON, и иногда эти данные могут содержать нулевые значения, что было причиной такого дизайна модели.

Итак, вопрос в том, как лучше всего получить самое глубокое поле?

First.get.second.get.third.get.numberOfSmth.get

Вышеуказанный метод выглядит очень некрасиво и может вызвать исключение, если один из объектов будет None. Я искал в Scalaz lib, но не нашел лучшего способа сделать это.

Есть идеи? Заранее спасибо.

Ответы на вопрос(4)

Ваш ответ на вопрос