jackson处理一般的javabean和json之间的转换只要使用objectmapper 对象的readvalue和writevalueasstring两个方法就能实现。但是如果要转换复杂类型collection如 list6f9a1a6711dbe2504e0d3824080f2898,那么就需要先反序列化复杂类型 为泛型的collection type。
如果是arraylist6f9a1a6711dbe2504e0d3824080f2898那么使用objectmapper 的gettypefactory().constructparametrictype(collectionclass, elementclasses);
如果是hashmapf06a8c1c72a64d06223d9867f08acdf6那么 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); }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
更多java的jackson将json字符串转换成泛型list。