gpt4 book ai didi

java - GSON将json对象转换为JAVA对象

转载 作者:行者123 更新时间:2023-12-02 04:39:46 27 4
gpt4 key购买 nike

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 对象(即 StudentPerson)。我如何在 JSON 中实现这一点。内部类是唯一的方法吗? (即使这样也行不通)。我也尝试过通过容器和内部类来做到这一点。如果还有其他库请帮忙。

最佳答案

在 JSON 数据中,变量名称为 personstudent。所以你也必须在 POJO 类中定义相同的名称。因此,对于这种情况,您必须将变量重命名为:

public person person;
public student student;

如果您不想更改变量的名称,则可以使用 SerializedName 注释定义其 JSON 变量名称:

@SerializedName("person")
public person p;

@SerializedName("student")
public student s;

还有一点:根据JAVA编码标准,类名应该以大写字母开头。因此,如果将类名分别用作 PersonStudentAdmit 会更好。

关于java - GSON将json对象转换为JAVA对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30298986/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com