json对象与json字符串互转

maven依赖


    com.fasterxml.jackson.core
    jackson-databind


    org.codehaus.jackson
    jackson-mapper-asl
    1.9.13

对象转json

private static final ObjectMapper mapper = new ObjectMapper();
/**
 * 将对象转化为json
 * @author yangwenkui
 * @time 2017年3月16日 下午2:55:10
 * @param obj 待转化的对象
 * @return 当转化发生异常时返回null
 */
public static String toJson(Object obj){
    if(obj == null){
        return null;
    }
    try {
        return mapper.writeValueAsString(obj);
    } catch (IOException e) {
        logger.error(String.format("obj=[%s]", obj.toString()), e);
    }
    return null;
}

json转对象

/**
 * 将json转化为对象
 * @author yangwenkui
 * @time 2017年3月16日 下午2:56:26
 * @param json json对象
 * @param clazz 待转化的对象类型
 * @return 当转化发生异常时返回null
 */
public static  T fromJson(String json,Class clazz){
    if(json == null){
        return null;
    }
    try {
        return mapper.readValue(json, clazz);
    } catch (IOException e) {
        logger.error(String.format("json=[%s]", json), e);
    }
    return null;
}

json转集合对象

/**
 * 将json对象转化为集合类型
 * @author yangwenkui
 * @time 2017年3月16日 下午2:57:15
 * @param json json对象
 * @param collectionClazz 具体的集合类的class,如:ArrayList.class
 * @param clazz 集合内存放的对象的class
 * @return
 */
@SuppressWarnings("rawtypes")
public static  Collection fromJson(String json,Class collectionClazz,Class clazz){
    if(json == null){
        return null;
    }
    try {
        Collection collection =  mapper.readValue(json, getCollectionType(collectionClazz,clazz));
        return collection;
    } catch (IOException e) {
        logger.error(String.format("json=[%s]", json), e);
    }
    return null;
}

private static JavaType getCollectionType(Class collectionClass, Class... elementClasses) {   
    return mapper.getTypeFactory().constructParametricType(collectionClass, elementClasses);   
}

你可能感兴趣的:(json对象与json字符串互转)