Tôi đang làm việc trên trình phân tích cú pháp JSON cho một ứng dụng Android. Khi tôi gọi máy chủ cho dữ liệu, có một số trường tùy chọn, làm thế nào để tôi xử lý điều này trong Retrofit bằng cách sử dụng bộ chuyển đổi GSON?Cách xử lý các trường JSON tùy chọn trong Retrofit cho Android?
phản ứng bình thường
{
"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"
}
}
phản ứng thay thế, khi một số lĩnh vực không có bất kỳ dữ liệu
{
"status":"SUCCESS",
"class-1":{
"class.enddate":"Jan/10/2016",
"class.startdate":"Jan/10/2015",
"class.title":"Physics 1"
}
}
POJO Lớp
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;
}
Làm thế nào để tạo ra các lớp POJO trong một cách để xử lý các trường tùy chọn không có mặt ? Hiện tại toàn bộ đối tượng MyClassInformation trở thành NULL khi các trường bị thiếu, Xin vui lòng trợ giúp.
Bạn đã thử/phát hiện ra điều gì? Bạn chưa hiển thị nghiên cứu của mình và câu hỏi của bạn có nhiều khả năng sẽ kết thúc hơn. – Sufian
'@Expose @SerializedName (" class-1 ") public SakaiClassInformation sakaiClassInformation;' không khớp với bất kỳ lớp nào trong đoạn mã của bạn. Bạn có lẽ có ý nghĩa để có 'MyClassInformation' có thay vào đó (hoặc có' MyClassInformation' đổi tên thành những gì bạn đang có)? –
Tôi đã thay đổi nó cho phù hợp, xin lỗi chỉ là một lỗi đánh máy – joelj