jackson 与复杂对象的json转换

来源:互联网 发布:淘宝标题优化的好处 编辑:程序博客网 时间:2024/06/10 16:31

jackson-mapper-asl.1.9.4.jar


ObjectMapper mapper =newObjectMapper();


对象转换为json串

public static String Object2Json(Object o) throws BusinessException {    StringWriter writer = new StringWriter();    try {        mapper.writeValue(writer, o);    } catch (IOException var3) {        var3.printStackTrace();        throw new BusinessException("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 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);    }}
复杂对象转换:Result<List<ReasonDepartmentDto>>
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);



1 0