gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 05:22:26 25 4
gpt4 key购买 nike

我有以下代码,它从 JsonNode 返回 stringlist:

   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);
}

例如,您可以调用此方法将 json 字符串转换为 List 或单个 Object

List<String> lOfStr = jsonMapper(json,new TypeReference<List<String>>() { });
Employee emp = jsonMapper(json,new TypeReference<Employee>() { });

关于java - 使用对象映射器从 JsonNode 返回通用列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59336513/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com