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, но не нашел лучшего способа сделать это.
Есть идеи? Заранее спасибо.