Java 具有两个相同类型的嵌套对象的Json对象

Java 具有两个相同类型的嵌套对象的Json对象,java,json,Java,Json,我有一个很简单的问题,似乎没有答案 我有一个对象,里面有两个类型相同的对象,它们不是数组。我如何用json表示它 GroupOfEmployees{ Employee emp1; Employee emp2; } Employee{ String name; int id; } emp1详细信息: 姓名:第一 身份证号码:1 emp2详细信息: 姓名:第二 id:2如果您正在查找表示GroupOfEmployees对象的json对象,那么示例json如下所示 { "emp1": {

我有一个很简单的问题,似乎没有答案

我有一个对象,里面有两个类型相同的对象,它们不是数组。我如何用json表示它

GroupOfEmployees{

Employee emp1;
Employee emp2;
}

Employee{
String name;
int id;
}
emp1详细信息: 姓名:第一 身份证号码:1

emp2详细信息: 姓名:第二
id:2

如果您正在查找表示GroupOfEmployees对象的json对象,那么示例json如下所示

{
    "emp1": {
        "name": "name1",
        "id": 1
    },
    "emp2": {
        "name": "name2",
        "id": 2
    }
}
更新
当您将上面的json转换为object时,您将得到一个包含两个名为emp1和emp2的employee对象的对象。考虑下面的例子

以下是您的雇员类别:

public class Employee {
    private String name;

    private int id;

    public Employee(String name, int id) {
        this.name = name;
        this.id = id;
    }

    // getter & setter methods

    @Override
    public String toString() {
        StringBuilder builder = new StringBuilder();
        builder.append("Employee [name=");
        builder.append(name);
        builder.append(", id=");
        builder.append(id);
        builder.append("]");
        return builder.toString();
    }
}
以下是GroupOfEmployees类别:

public class GroupOfEmployees {
    private Employee emp1;
    private Employee emp2;

    // getters & setters method

    @Override
    public String toString() {
        StringBuilder builder = new StringBuilder();
        builder.append("GroupOfEmployees [emp1=");
        builder.append(emp1);
        builder.append(", emp2=");
        builder.append(emp2);
        builder.append("]");
        return builder.toString();
    }
}
主要方法如下:

public static void main(String[] args) {
    Employee emp1 = new Employee("name1", 1);
    Employee emp2 = new Employee("name2", 2);

    GroupOfEmployees groupOfEmployees = new GroupOfEmployees();
    groupOfEmployees.setEmp1(emp1);
    groupOfEmployees.setEmp2(emp2);

    Gson gson = new GsonBuilder().create();

    String jsonValue = gson.toJson(groupOfEmployees);
    System.out.println("jsonValue = " + jsonValue);

    GroupOfEmployees newGroup = gson.fromJson(jsonValue, GroupOfEmployees.class);
    System.out.println("Object value = " + newGroup);
}
最后输出为:

jsonValue = {"emp1":{"name":"name1","id":1},"emp2":{"name":"name2","id":2}}
Object value = GroupOfEmployees [emp1=Employee [name=name1, id=1], emp2=Employee [name=name2, id=2]]

制作一个
JSONArray

[
{
name: "name1",
id: = id1 }, 
{
name: "name2",
id: = id2 }
]

实际上,我想制作一个json,稍后可以使用gson库将其重新转换为上述对象。因此,在这个解决方案中,它将把这个json转换成一个包含2个元素的employee对象数组,这是我想要避免的。我希望它们被转换成两个独立的对象,完全如问题所示。如何做到这一点?+1因为你正确理解了这个问题。你能解释一下toString方法是如何被调用的吗?