Witam,
mam oto takie pole które reprezentuje JSON'a
private List<Map<String, Map<String, Map<String, Object>>>> description;
Teraz potrzebuje wyszukać w tej strukturze wszystkie obiekty optionId, które znajdują się na 3 poziomie tej mapy
componentDefinitionModel -> componentsDef -> optionId.
Jednak ta mapa zawiera też inne elementy więc mogą się zdarzyć nulle. Jak to rozwiązać najlepiej, z aktualnego rozwiązania nie jestem zadowolony, dużo powtarzania jak usunąć te linie .filter(Optional::isPresent).map(Optional::get)
description.stream()
.map(map -> Optional.ofNullable((map.get("componentDefinitionModel"))))
.filter(Optional::isPresent).map(Optional::get)
.map(map -> Optional.ofNullable((map.get("componentsDef"))))
.filter(Optional::isPresent).map(Optional::get)
.map(map -> Optional.ofNullable(map.get("optionId")))
.filter(Optional::isPresent).map(Optional::get)
.forEach(System.out::println);