1. 程式人生 > >jackson 與複雜物件的json轉換

jackson 與複雜物件的json轉換

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