【发布时间】:2021-01-14 14:19:54
【问题描述】:
我目前正在 java 中构建一个 JSON,它将在调用 POST 端点时用作请求体。我需要构建到 JSON 中的类如下所示:
public class EmployeeImport {
@SerializedName("Header")
private final Header header;
@SerializedName("Employees")
private final List<Employee> employees;
public EmployeeImport(final Header header,
final List<Employee> employees) {
this.header = header;
this.employees = employees;
}
我使用 GSON 从此类生成 JSON:
private String generateJSONForImport(final Employee employee, final Header header) {
final EmployeeImport employeeImport = new EmployeeImport(header, Arrays.asList(employee));
final Gson gson = new Gson();
final String json = gson.toJson(employeeImport);
System.out.println(json);
}
打印 JSON 时,如下所示:
{
"Header": {
"Date": "2021-01-14"
},
"Employees": [
{
"ValueOne": "lala",
"ValueTwo": "lalala"
}
]
}
但我需要 JSON 将“EmployeeImport”类包含为包装对象,如下所示:
{
"EmployeeImport": {
"Header": {
"Date": "2021-01-13"
},
"Employees": [{
"ValueOne": "lala",
"ValueTwo": "lalala"
}]
}
}
我已经为此寻找了一个好的解决方案,并且我看到注释“@JsonTypeInfo”似乎可以解决这个问题,但这似乎只适用于杰克逊图书馆。
有没有人知道如何使用 GSON 库来解决这个问题?
【问题讨论】: