JSON Map类型指定类型
0
fastjson
JSON.parseObject(responseJSON, new TypeReference<Map<String, Object>>() {})
jackson
// 第一种
final Map<String, Object> data = mapper.readValue(json, new TypeReference<Map<String, Object>>() {});
// 第二种
final JavaType type = mapper.getTypeFactory().constructParametricType(Map.class, String.class, Object.class);
return mapper.readValue(json, type);
推荐使用TypeReference
,可以使用返回类型进行泛型推断:
public static final <K, V> Map<K, V> toMap(String json) {
if (json == null) {
return null;
}
try {
return MAPPER.readValue(json, new TypeReference<Map<K, V>>() {});
} catch (IOException e) {
LOGGER.error("JSON字符串转Map对象异常:{}", json, e);
}
return null;
}