我当前的用例涉及在发布请求中接收JSON对象,该请求看起来像:

{"employer": 1, "employee": 15}


然后,我要根据这些内容创建一个“合同”对象,将我的雇主与我的雇员联系起来。

目前,我需要类似

@POST
public Contract createContract(ContractRequest cr) {
    Employee employee = employeeDao.getEmployeeFromId(cr.getEmployeeId());
    Employer employer = employerDao.getEmployerFromId(cr.getEmployerId());
    Contract c = new Contract();
    c.setEmployer(employer);
    c.setEmployee(employee);
    return c;

}


这有几个缺点:我需要定义一个ContractRequest类,其唯一目的是捕获ID,然后将ID传递给员工/雇主daos。

是否可以将json映射到通用Java映射对象,而不必为其显式定义一个类?

最佳答案

您可以使用杰克逊:

HashMap<String,Object> result = new ObjectMapper().readValue(string, HashMap.class);


或GSON:

String employer = root.getAsJsonObject().get("employer").getAsString();

09-27 04:15