Zugriff auf die Eigenschaften einer inneren Klasse eines JSON Files?

1 Antwort

Z.B. so:

//-----------------------------------------------
//Person.java
public class Person {

    String Titel;
    String Vorname;
    String Nachname;
    int Alter;
    Adresse adresse;
    
    public Person(String titel, String vorname, String nachname, int alter, Adresse adresse) {
        Titel = titel;
        Vorname = vorname;
        Nachname = nachname;
        Alter = alter;
        this.adresse = adresse;
    }
    
    @Override
    public String toString() {
        return "Person{" +
                "Titel='" + Titel + '\'' +
                ", Vorname='" + Vorname + '\'' +
                ", Nachname='" + Nachname + '\'' +
                ", Alter=" + Alter +
                ", Adresse=" + adresse.toString() +
                '}';
    }
}

//-----------------------------------------------
//Adresse.java
public class Adresse {
    int PLZ;
    String Ort;
    String Strasse;
    int Hausnummer;

    public Adresse(int PLZ, String ort, String strasse, int hausnummer) {
        this.PLZ = PLZ;
        Ort = ort;
        Strasse = strasse;
        Hausnummer = hausnummer;
    }
    
    @Override
    public String toString() {
        return "Adresse{" +
            "PLZ=" + PLZ +
            ", Ort='" + Ort + '\'' +
            ", Strasse='" + Strasse + '\'' +
            ", Hausnummer=" + Hausnummer
        '}';
    }
}
TscharArray 
Fragesteller
 19.03.2022, 20:54

einfach rausnehmen oder wie?

0
regex9  19.03.2022, 20:57
@TscharArray

Ja. Für das Mapping wird GSON automatisch die Klasse (Adresse) auflösen. Die innere Klasse in deinem Code hingegen wird der Bibliothek wohl eher Probleme bereiten, wenn sie eine Instanz von Adresse anlegen möchte.

0
regex9  19.03.2022, 21:01
@regex9

Zudem würde bei deinem Code dem Mapper ja auch eine Instanz fehlen, auf die die Daten gemappt werden können.

0
TscharArray 
Fragesteller
 20.03.2022, 10:45
@regex9

wie hängen die Person und Adresse nun zusammen? Sind das jetzt nicht zwei eigenständige Objekte?

0
Zahhak  20.03.2022, 11:04
@TscharArray

Nein, es sind zwei Klassen.

Und jedes Objekt der Klasse Person enthält ein Objekt der Klasse Adresse.

0
TscharArray 
Fragesteller
 20.03.2022, 11:16
@Zahhak

das wäre natürlich gewollt, aber ich sehen nicht wo das im code gemacht wird

0
Zahhak  20.03.2022, 11:27
@TscharArray

Dann solltest du dir nochmal alle Stellen im Code ansehen, in denen das Wort "Adresse" bzw. "adresse" vorkommt.

1