2017-07-29 42 views
1

我現在用例涉及接收一個JSON對象作爲POST請求的一部分,這可能看起來像:映射JSON對象以通用Map對象

{"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,然後我傳遞給員工/僱主DAOS的唯一目的。

是否有可能將json映射到通用java映射對象而不必爲其顯式定義類?

回答

1

您可以使用傑克遜:

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

或GSON:

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