转为泛型集合
public static <T> T JSONStringToObject(String str, Class<?> collectionClass, Class<?>... elementClasses) throws IOException {
ObjectMapper mapper = new ObjectMapper();
JavaType javaType = mapper.getTypeFactory().constructParametricType(collectionClass, elementClasses);
return mapper.readValue(str, javaType);
}
第一个class是泛型集合或者泛型类的class,后面的class数组则是具体的元素类的class。若集合为HashMap则数组依次填入key value的class。
转为泛型类
与转为集合方法相同,只是传入集合类class的地方改为传入泛型类的class。
如果constructParametricType()方法不管用
这种情况多见于复杂泛型嵌套的情景,此时需要使用TypeReference。
public static <T> T JSONStringToObject(String str, TypeReference<T> valueTypeRef) throws IOException {
ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
return mapper.readValue(str, valueTypeRef);
}
BaseResponse<List<MyResp>> resp = JsonUtil.JSONStringToObject(result, new TypeReference<BaseResponse<List<MyResp>>>(){});
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。