我有以下代码从list
返回strings
的JsonNode
:
public static List<String> asList(final JsonNode jsonNode) {
ObjectMapper mapper = new ObjectMapper();
return mapper.convertValue(jsonNode, ArrayList.class);
}
示例用法:
List<String> identities = Utils.asList(jsonNode);
我想将其更改为使用Generics
以确保JsonNode
包含任何类型的列表也可以转换并返回。
我有以下实现(不使用Jackson ObjectMapper
),但这是最佳解决方案吗?
public static <T> List<T> asList(final JsonNode jsonNode) {
ObjectMapper mapper = new ObjectMapper();
return mapper.convertValue(jsonNode, ArrayList.class);
}
您可以创建一个接受JSON
字符串和TypeReference
的util方法>
public <T> T jsonMapper(String json, TypeReference<T> typeReference)
throws JsonParseException, JsonMappingException, IOException {
return objectMapper.readValue(json, typeReference);
}
为了避免取消选中的分配,您可以使用TypeReference: