使用 ObjectMapper 映射到不同的类型
Map to a different type using ObjectMapper
我有一段代码
我需要使用 ObjectMapper
将 employeeRows
映射到 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)
我有一段代码
我需要使用 ObjectMapper
将 employeeRows
映射到 List<Map<String, Object>>
以将其作为参数传递到 createResponse
方法中。
有人可以帮我解决这个问题吗?
Publisher<employee> employeeRows = employeeService.list();
// Create response with our results
return createResponse(request, employeeRows, pivotValues);
我认为这个问题类似于:
您需要在问题中提供更多详细信息,但我会尝试做出合理的假设并为您提供我的最佳猜测答案。首先,为什么在你的代码中
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)