使用对象映射器从JsonNode返回通用列表吗?

问题描述 投票:0回答:2

我有以下代码从list返回stringsJsonNode

   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);
}
java json list generics objectmapper
2个回答
1
投票

您可以创建一个接受JSON字符串和TypeReference的util方法>

public <T> T jsonMapper(String json, TypeReference<T> typeReference)
        throws JsonParseException, JsonMappingException, IOException {
    return objectMapper.readValue(json, typeReference);
}

0
投票

为了避免取消选中的分配,您可以使用TypeReference

© www.soinside.com 2019 - 2024. All rights reserved.