Jackson:Java與Json互轉

jopen 11年前發布 | 90K 次閱讀 JSON開發包 JSON

Jackson解析的速度算是同類框架中最快的,同時也是Spring MVC中內置使用的解析方式。

 準備工作:

下載jar包:http://jackson.codehaus.org/1.7.6/jackson-all-1.7.6.jar
Jackson依賴的jar包相對較少,使用起來也比較簡單。
直接貼出Jackson的相關代碼,非常簡單,就兩個方法:
public class JSonUtils {

static ObjectMapper objectMapper;

/**
 *      使用泛型方法,把json字符串轉換為相應的JavaBean對象。
 *      (1)轉換為普通JavaBean:readValue(json,Student.class)
 *      (2)轉換為List:readValue(json,List.class).但是如果我們想把json轉換為特定類型的List,比如List<Student>,就不能直接進行轉換了。
 *         因為readValue(json,List.class)返回的其實是List<Map>類型,你不能指定readValue()的第二個參數是List<Student>.class,所以不能直接轉換。
 *         我們可以把readValue()的第二個參數傳遞為Student[].class.然后使用Arrays.asList();方法把得到的數組轉換為特定類型的List。
 *      (3)轉換為Map:readValue(json,Map.class)
 * &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;我們使用泛型,得到的也是泛型
 * 
 * @param content 要轉換的JavaBean類型
 * @param valueType 原始json字符串數據
 * @return JavaBean對象
 */
public static <T> T readValue(String content, Class<T> valueType) {
    if (objectMapper == null) {
        objectMapper = new ObjectMapper();
    }
    try {
        return objectMapper.readValue(content, valueType);
    } catch (Exception e) {
        e.printStackTrace();
    }

    return null;
}

/**
 *      把JavaBean轉換為json字符串 
 *      (1)普通對象轉換:toJson(Student) 
 *      (2)List轉換:toJson(List)
 *      (3)Map轉換:toJson(Map)
 * 我們發現不管什么類型,都可以直接傳入這個方法
 * 
 * @param object JavaBean對象
 * @return json字符串
 */
public static String toJSon(Object object) {
    if (objectMapper == null) {
        objectMapper = new ObjectMapper();
    }
    try {
        return objectMapper.writeValueAsString(object);
    } catch (Exception e) {
        e.printStackTrace();
    }

    return null;
}

}</pre></span></span>地址:http://www.cnblogs.com/china-li/archive/2013/04/25/3041838.html

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!