使用 ObjectMapper 映射到不同的类型

Map to a different type using ObjectMapper

我有一段代码

我需要使用 ObjectMapperemployeeRows 映射到 List<Map<String, Object>> 以将其作为参数传递到 createResponse 方法中。

有人可以帮我解决这个问题吗?

Publisher<employee> employeeRows = employeeService.list();

// Create response with our results
return createResponse(request, employeeRows, pivotValues);

我认为这个问题类似于: 正如答案所述,您可以使用 TypeReference 实现映射到 List>

您需要在问题中提供更多详细信息,但我会尝试做出合理的假设并为您提供我的最佳猜测答案。首先,为什么在你的代码中
Publisher<employee> employeeRows = employeeService.list();
您调用了名为 list() 的方法,但它 returns 是 class Publisher<employee> 的实例,而不是列表。此外,如果您尝试将不是列表的 class 的任何实例序列化为 Json,您将得到一个 Json 对象(相当于 Map<String, Object> 而不是 List<Map<String, Object>>).所以,如果你想得到一个 JSON 列表(相当于 List<Map<String, Object>>),你必须有一个 List<Employee>。这样做是一项艰巨的任务。您可以使用 ObjectMapper class 作为它。但我还写了一个 Open-source 库,它有一个 class JsonUtils,它是 ObjectMapper class 的简单包装器,可以为您简化此任务。假设您有一个 List<Employee>,您的代码将如下所示:

try {
  String jsonListString = writeObjectToJsonString(myEmployeeList);
} catch(JsonProcessingException jpe) {
  ...
}

这是 JsonUtils class. The library called MgntUtils and you can get it as maven artifact or on Github 的 Javadoc(包括源代码和 Javadoc)