json對象與javaBean,String字符創之間相互轉換的方法


原創:轉載請注明出處

package com.allcam.system.utils;

import com.fasterxml.jackson.databind.ObjectMapper;

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM