日期:2014-05-16  浏览次数:20331 次

Jackson 框架,轻易转换JSON
一、准备工作

1、 下载依赖库jar包

Jackson的jar all下载地址:http://jackson.codehaus.org/1.7.6/jackson-all-1.7.6.jar

然后在工程中导入这个jar包即可开始工作

官方示例:http://wiki.fasterxml.com/JacksonInFiveMinutes

因为下面的程序是用junit测试用例运行的,所以还得添加junit的jar包。版本是junit-4.2.8

如果你需要转换xml,那么还需要stax2-api.jar

2、 测试类基本代码如下

package com.hoo.test;



import java.io.IOException;

import java.io.StringWriter;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.Iterator;

import java.util.LinkedHashMap;

import java.util.List;

import java.util.Map;

import java.util.Set;

import org.codehaus.jackson.JsonEncoding;

import org.codehaus.jackson.JsonGenerationException;

import org.codehaus.jackson.JsonGenerator;

import org.codehaus.jackson.JsonParseException;

import org.codehaus.jackson.map.JsonMappingException;

import org.codehaus.jackson.map.ObjectMapper;

import org.codehaus.jackson.node.JsonNodeFactory;

import org.codehaus.jackson.xml.XmlMapper;

import org.junit.After;

import org.junit.Before;

import org.junit.Test;

import com.hoo.entity.AccountBean;



/**

* <b>function:</b>Jackson 将java对象转换成JSON字符串,也可以将JSON字符串转换成java对象

* jar-lib-version: jackson-all-1.6.2

* jettison-1.0.1

* @author hoojo

* @createDate 2010-11-23 下午04:54:53

* @file JacksonTest.java

* @package com.hoo.test

* @project Spring3

* @blog http://blog.csdn.net/IBM_hoojo

* @email hoojo_@126.com

* @version 1.0

*/

@SuppressWarnings("unchecked")

public class JacksonTest {

    private JsonGenerator jsonGenerator = null;

    private ObjectMapper objectMapper = null;

    private AccountBean bean = null;

   

    @Before

    public void init() {

        bean = new AccountBean();

        bean.setAddress("china-Guangzhou");

        bean.setEmail("hoojo_@126.com");

        bean.setId(1);

        bean.setName("hoojo");

       

        objectMapper = new ObjectMapper();

        try {

            jsonGenerator = objectMapper.getJsonFactory().createJsonGenerator(System.out, JsonEncoding.UTF8);

        } catch (IOException e) {

            e.printStackTrace();

        }

    }

   

    @After

    public void destory() {

        try {

            if (jsonGenerator != null) {

                jsonGenerator.flush();

            }

            if (!jsonGenerator.isClosed()) {