使用Jackson来进行对象与json的转化

没什么技巧,Jackson已经给出了完美的用法,自己再简单包装下就行了,也很简单,我就不废话了!

第一步:引入依赖jar包,必须的

<!-- Jackson Json处理工具包 -->
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-databind</artifactId>
			<version>2.4.2</version>
</dependency>

第二步:开撸,自己再简单包装后的4中使用方法

 // 定义jackson对象
    private static final ObjectMapper MAPPER = new ObjectMapper();
  



 /**
     * 将对象转化为json对象(可以是多个对象即集合)
     * 因为最后都会把转化为字符串
     * @param data
     * @return
     */
    public static String objectToJson(Object data) {
    	try {
			String string = MAPPER.writeValueAsString(data);
			return string;
		} catch (JsonProcessingException e) {
			e.printStackTrace();
		}
    	return null;
    }
    
    /**
     * 将json转化为单个对象
     * @param jsonData
     * @param beanType
     * @return
     */
    public static <T> T jsonToPojo(String jsonData, Class<T> beanType) {
        try {
            T t = MAPPER.readValue(jsonData, beanType);
            return t;
        } catch (Exception e) {
        	e.printStackTrace();
        }
        return null;
    }
    
    /**
     * 将json转化为list集合
     * @param jsonData
     * @param beanType
     * @return
     */
    public static <T> List<T> jsonToList(String jsonData, Class<T> beanType) {
    	JavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType);
    	try {
    		List<T> list = MAPPER.readValue(jsonData, javaType);
    		return list;
		} catch (Exception e) {
			e.printStackTrace();
		}
    	
    	return null;
    }

第三 步:测试

/**
     * 测试方法
     */
    @Test
    public void fun() {
    	Student stu = new Student("zhansan","123456","男");
    	Student stu2 = new Student("lisi","123456","女");
    	
    	List<Student> list = new ArrayList<Student>();
    	list.add(stu);
    	list.add(stu2);
    	
    	//测试单个对象转化为json对象
    	System.out.println("-----------对象转化为json对象---------------");
    	String jsonData1 = MyJackson.objectToJson(stu);
    	System.out.println(jsonData1);
    	
    	//测试多个对象转化为json对象
    	System.out.println("-----------多个对象转化为json对象---------------");
    	String jsonData2 = MyJackson.objectToJson(list);
    	System.out.println(jsonData2);
    	
    	
    	
    	//测试 将json转化为单个对象
    	System.out.println("-----------json转化为单个对象--------------");
    	String jsonData3 = "{\"name\":\"zhansan\",\"password\":\"123456\",\"sex\":\"男\"}";
    	Student pojo = MyJackson.jsonToPojo(jsonData3, Student.class);
    	System.out.println(pojo.toString());
    	
    	
    	//测试 将json转化为list
    	System.out.println("-----------将json转化为list--------------");
    	String jsonData4 = "[{\"name\":\"zhansan\",\"password\":\"123456\",\"sex\":\"男\"},{\"name\":\"lisi\",\"password\":\"123456\",\"sex\":\"女\"}]";
    	List<Student> list2 = MyJackson.jsonToList(jsonData4, Student.class);
    	System.out.println(list.toString());
    }

第四步:结果

-----------对象转化为json对象---------------
{"name":"zhansan","password":"123456","sex":"男"}


-----------多个对象转化为json对象---------------
[{"name":"zhansan","password":"123456","sex":"男"},{"name":"lisi","password":"123456","sex":"女"}]


-----------json转化为单个对象--------------
Student [name=zhansan, password=123456, sex=男]


-----------将json转化为list--------------
[Student [name=zhansan, password=123456, sex=男], Student [name=lisi, password=123456, sex=女]]

猜你喜欢

转载自blog.csdn.net/qq_38263083/article/details/84950442
今日推荐