GSON将json对象转换为JAVA对象
我想将给定的GSON将json对象转换为JAVA对象,java,json,gson,Java,Json,Gson,我想将给定的JSON转换为两个不同的java对象(即Student和Person)。如何在JSON中实现这一点。内部类是唯一的方法吗?(即使这样也不行)。我也尝试过通过集装箱船和内部类来实现这一点。如果还有其他库,请提供帮助。在JSON数据中,变量名是person和student。因此,您还必须在POJO类中定义相同的名称。 因此,在这种情况下,必须将变量重命名为: class Admit { public Person p; public Student s; pub
JSON
转换为两个不同的java对象(即Student
和Person
)。如何在JSON
中实现这一点。内部类是唯一的方法吗?(即使这样也不行)。我也尝试过通过集装箱船和内部类来实现这一点。如果还有其他库,请提供帮助。在JSON数据中,变量名是person
和student
。因此,您还必须在POJO类中定义相同的名称。
因此,在这种情况下,必须将变量重命名为:
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();
}
}
如果不想更改变量的名称,则可以使用SerializedName
注释定义其JSON变量名称:
public person person;
public student student;
还有一件事:根据JAVA编码标准,类名应该以大写字母开头。因此,如果您使用的类名分别为
Person
、Student
、Admit
,则会更好 如下更改您的承认类对象
当您将json对象映射到相应POJO类中的变量时,两个名称应该相同。json对象的名称应该与绑定变量名称匹配
@SerializedName("person")
public person p;
@SerializedName("student")
public student s;
如果没有内部类,它也会工作吗?假设我有单独的招生、学生和个人课程?
class Admit
{
public person person;
public student student;
public void printAdmit(){
System.out.println(person.getFirstName());
}