[英]Converting a list of json objects to java object using gson, gets null
[英]GSON converting json objects to JAVA object
class Admit {
public Person p;
public Student s;
public void printAdmit() {
System.out.println(p.getFirstName());
}
class Student {
public long rollno;
public String toString() {
return "rollno: " + rollno;
}
public void setRollno(long rollno) {
this.rollno = rollno;
}
}
class Person {
public String firstName;
public String email;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public void setEmail(String email) {
this.email = email;
}
public String toString() {
return "name: " + firstName + "email: " + email;
}
}
}
class JSONParsing{
public static void main(String [] args) throws Exception {
String json = "{'student':{'rollno':3},'person':{'firstName':'pavan','email':'mehta@yahoo.com'}}";
Gson gson = new Gson();
//String stud = (String)jO.getString("student");
Admit add = gson.fromJson(json, Admit.class);
add.printAdmit();
}
}
我想將給定的JSON
轉換為2個不同的Java對象(即Student
和Person
)。 如何在JSON
實現此目的。 內部階級是做到這一點的唯一方法嗎? (即使這不起作用)。 我也嘗試通過集裝箱運輸以及內部類來實現。 如果還有其他庫,請幫助。
在JSON數據中,變量名是person
和student
。 因此,您還必須在POJO類中定義相同的名稱。 因此,在這種情況下,您必須將變量重命名為:
public person person;
public student student;
如果您不想更改變量的名稱,則可以使用SerializedName
批注定義其JSON變量名稱:
@SerializedName("person")
public person p;
@SerializedName("student")
public student s;
還有一件事:根據JAVA編碼標准,類名應以大寫字母開頭。 因此,最好分別使用班級名稱作為Person
, Student
和Admit
。
如下更改您的Admit類對象。
當您將json對象映射到對應的POJO類中的variaiable時,兩個名稱應該相同。json對象的名稱應與綁定變量名稱匹配
class Admit
{
public person person;
public student student;
public void printAdmit(){
System.out.println(person.getFirstName());
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.