Prüfen ob Element in JSON vorhanden ist (JAVA)?

Hallo, ich nehme einmal folgendes Beispiel.

Man hat eine simple JSON Datei. Diese Besteht in der obersten ebene aus einem JSON Array, wobei jedes Element darin ein JSON Object ist. Angenommen es handelt sich um Personen. Diese haben das als Eigenschaft wiederum Objekte und Arrays z.B. Ein Array mit den Elementen Kinder (also jedes Kind ein Objekt im besagten Array).

Bei manchen ist es vorhanden bei manchen nicht. Da die Datei umfangreich ist will ich z.B. mittels Schleife alle Kinder ausgeben deren Alter größer als 12 ist.

Wie checke ich bei der Bedingung ab, ob überhaupt Objekte vom Typ Kind vorhanden sind? Was wird zurückgegeben wenn ein Aufgerufenes Element nicht existiert?

Bei dem ganzen benutze ich:

//import com.google.gson.Gson;
(1 votes)
Loading...

Similar Posts

Subscribe
Notify of
1 Answer
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
orochi02
2 years ago

hab nicht alles ganz genau verstanden aber um jedes kind das über 12 ist auszugeben, hätte ich es ungefähr so gemacht. (auch wenn es sicherlich sauberer geht denke ich es ist noch lesbar und okay)

JsonArray people = //...
StreamSupport.stream(people.spliterator(), false)
    // kindlose personen rausfiltern
    .map(person -> person.children())
    .filter(Objects::notNull)
    // kinder iterieren
    .flatMap(children -> StreamSupport.stream(children.spliterator(), false))
    .filter(child -> child.age() > 12)
    // ausgabe
    .forEach(System.out::println);

der code behandelt jz den fall, dass kinderlose personen als feld null haben können, ich empfehle jedoch statt das feld auszulassen, lieber leere arrays zu nutzen