java的Jackson將json字符串轉換成泛型List。本站提示廣大學習愛好者:(java的Jackson將json字符串轉換成泛型List)文章只能為提供參考,不一定能成為您想要的結果。以下是java的Jackson將json字符串轉換成泛型List正文
Jackson,我覺得是在Java與Json之間互相轉換的最疾速的框架,當然Google的Gson也很不錯,但是參照網上有人的功能測試,看起來還是Jackson比擬快一點
Jackson處置普通的JavaBean和Json之間的轉換只需運用ObjectMapper 對象的readValue和writeValueAsString兩個辦法就能完成。但是假如要轉換復雜類型Collection如 List<YourBean>,那麼就需求先反序列化復雜類型 為泛型的Collection Type。
假如是ArrayList<YourBean>那麼運用ObjectMapper 的getTypeFactory().constructParametricType(collectionClass, elementClasses);
假如是HashMap<String,YourBean>那麼 ObjectMapper 的getTypeFactory().constructParametricType(HashMap.class,String.class, YourBean.class);
public final ObjectMapper mapper = new ObjectMapper();
public static void main(String[] args) throws Exception{
JavaType javaType = getCollectionType(ArrayList.class, YourBean.class);
List<YourBean> lst = (List<YourBean>)mapper.readValue(jsonString, javaType);
}
/**
* 獲取泛型的Collection Type
* @param collectionClass 泛型的Collection
* @param elementClasses 元素類
* @return JavaType Java類型
* @since 1.0
*/
public static JavaType getCollectionType(Class<?> collectionClass, Class<?>... elementClasses) {
return mapper.getTypeFactory().constructParametricType(collectionClass, elementClasses);
}
以上就是本文的全部內容,希望對大家的學習有所協助,也希望大家多多支持。