Ich arbeite an einem JSON-Parser für eine Android-Anwendung. Wenn ich den Server für Daten anrufe, gibt es einige optionale Felder, wie gehe ich in Retrofit mit GSON Konverter um?Wie behandelt man optionale JSON-Felder in Retrofit für Android?
Normale Antwort
{
"status":"SUCCESS",
"class-1":{
"class.enddate":"Jan/10/2016",
"class.startdate":"Jan/10/2015",
"class.title":"Physics 1",
"class.short.description":"Physics 1",
"class.description":"This is a Physics Class"
}
}
Alternative Antwort, wenn einige Felder haben keine Daten
{
"status":"SUCCESS",
"class-1":{
"class.enddate":"Jan/10/2016",
"class.startdate":"Jan/10/2015",
"class.title":"Physics 1"
}
}
POJO Klassen
public class MyClass {
@Expose @SerializedName("status")
public String status;
@Expose @SerializedName("class-1")
public MyClassInformation myClassInformation;
}
public class MyClassInformation {
@Expose @SerializedName("class.title")
public String classTitle;
@Expose @SerializedName("class.short.description")
public String classShortDescription;
@Expose @SerializedName("class.description")
public String classDescription;
@Expose @SerializedName("class.startdate")
public String startDate;
@Expose @SerializedName("class.enddate")
public String endDate;
}
Wie erstelle ich die POJO Klassen in eine Möglichkeit, mit den optionalen Feldern umzugehen, die nicht vorhanden sind ? Im Moment wird das gesamte MyClassInformation-Objekt NULL, wenn Felder fehlen, bitte helfen.
Was haben Sie versucht/herausgefunden? Sie haben Ihre Recherche nicht angezeigt und Ihre Frage wird wahrscheinlich eher geschlossen. – Sufian
'@Expose @SerializedName (" class-1 ") public SakaiClassInformation sakaiClassInformation;' stimmt mit keiner Klasse in Ihrem Code-Snippet überein. Wussten Sie vielleicht, dass Sie stattdessen "MyClassInformation" haben (oder "MyClassInformation" in das umbenannt haben, was Sie gerade haben)? –
Ich habe es entsprechend geändert, sorry nur ein Tippfehler – joelj