json—从请求体中的java列表中提取实体

smtd7mpg  于 2021-07-11  发布在  Java
关注(0)|答案(2)|浏览(369)

我有以下方法。

@PostMapping(value = Constants.EMPLOYEE_INSERT,produces = MediaType.APPLICATION_JSON_VALUE)
public String employeeInsert(@RequestHeader(ConstantsValue.ID) @NotBlank final String id,
        @RequestBody final List<EmployeeData> empData) {

    if (empData != null) {
        final List<EmployeeData> insertedData = this.employeeService.insertEmployeeData(empData, id);
        if (insertedData != null) {

            final List<EmployeeData> employeeDataAfterInsertion =
                           this.employeeService.getEmployeeData(employeeId);
            if (employeeDataAfterInsertion != null) {
                return new Gson().toJson(employeeDataAfterInsertion);
            } else {
                throw new EUCCustomException(empConstants.NO_EMPLOYEE_DATA);
            }

        } else {
            throw new EUCCustomException(empConstants.EMPLOYEE_INSERT_ERROR_DATA);
        }

    } else {
        throw new EUCCustomException(empConstants.EMPLOYEE_MISSING_HEADER_DATA);
    }

}

在请求中,我有一个empdata列表,其中包含来自ui的数据。如何提取empdata,以便在getemployeedata方法中传递employeeid。

niknxzdl

niknxzdl1#

employeedata应该包含1个employeedata,如果empdata是employeedata的列表,则它包含多个employeedata。
你应该弄清楚你想抓取哪个员工,然后使用id。如果你想要第一个,你可以使用它作为:

insertedData[0].getEmployeeId()

getemployeeid方法应该存在于employeedata类中。

von4xj4u

von4xj4u2#

empdata是否不为空?我是说,你肯定empdata里面有价值,不是吗?
使用foreach获取每个employeedata的值

for (EmployeeData employeeData : empData) {
     ...
     final List employeeDataAfterInsertion =
                           this.employeeService.getEmployeeData(employeeData.getEmployeeId()); // make sure you have set the getter of getEmployeeId() inside EmployeeData class 
     ...
}

相关问题