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