jackson 與複雜物件的json轉換
阿新 • • 發佈:2019-02-05
jackson-mapper-asl.1.9.4.jar
ObjectMapper mapper =new ObjectMapper();
物件轉換為json串
public static String Object2Json(Object o) throws BusinessException { StringWriter writer = new StringWriter(); try { mapper.writeValue(writer, o); } catch (IOException var3) { var3.printStackTrace(); throw newBusinessException("Entity轉換成Json時出現異常。", var3); } return writer.toString(); }
json轉換為bean
entity = (Entity)mapper.readValue(json, clazz);
與List<T>轉換
public static <T extends BaseEntity> List<T> json2List(String json, Class<T> clazz) throws BusinessException { ObjectMapper mapper = new複雜物件轉換:Result<List<ReasonDepartmentDto>>ObjectMapper(); JavaType javaType = mapper.getTypeFactory().constructParametricType(ArrayList.class, new Class[]{clazz}); try { return (List)mapper.readValue(json, javaType); } catch (JsonParseException var5) { var5.printStackTrace(); throw new BusinessException("Json轉換成List<T>異常。", var5); } catch (JsonMappingException var6) { var6.printStackTrace(); throw new BusinessException("Json轉換成List<T>異常。", var6); } catch (IOException var7) { var7.printStackTrace(); throw new BusinessException("Json轉換成List<T>異常。", var7); } }
JavaType tType = mapper.getTypeFactory().constructParametricType(ArrayList.class,ReasonDepartmentDto.class); JavaType javaType = mapper.getTypeFactory().constructParametricType(Result.class, tType); result =(Result<List<ReasonDepartmentDto>>) mapper.readValue(dataMap.get("value"), javaType);