0
点赞
收藏
分享

微信扫一扫

json list互相转换例子(采用jackson)



项目中需要用到json与java List之间的转换,在此写出来自己的方法,这里采用的是jackson。请先下载jackson相关包和apache cxf下的jettison-1.2.jar



由于没有过多的研究jackson,自己写的只是一个可行的方式。

package com.test;

public class TestPojo {
	private String name;
	private String sex;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getSex() {
		return sex;
	}

	public void setSex(String sex) {
		this.sex = sex;
	}

	@Override
	public String toString() {
		return "TestPojo [name=" + name + ", sex=" + sex + "]";
	}
}




package com.test;

import java.io.IOException;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.codehaus.jettison.json.JSONArray;
import org.codehaus.jettison.json.JSONException;

import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;

public class JSONTest {

	/**
	 * @param args
	 */
	@SuppressWarnings("rawtypes")
	public static void main(String[] args) {
		ObjectMapper mapper = new ObjectMapper();
		StringWriter sw = null;
		JSONArray array = null;

		List<TestPojo> list = new ArrayList<TestPojo>();
		List<TestPojo> list2 = new ArrayList<TestPojo>();
		try {
			for (int i = 0; i < 10; i++) {
				TestPojo pojo1 = new TestPojo();
				pojo1.setName(i + "11");
				pojo1.setSex(i + "22");
				list.add(pojo1);
				sw = new StringWriter();
				//转换自定义类
				mapper.writeValue(sw, pojo1);
				System.out.println(sw.getBuffer().toString());
			}

			//转换List
			sw = new StringWriter();
			mapper.writeValue(sw, list);
			System.out.println(sw.getBuffer().toString());

			//从字符串得到包含数组, 再从数组的到元素, 并转换成自定义对象
			array = new JSONArray(sw.toString());
			for (int i = 0; i < array.length(); i++) {
				TestPojo pojoReverse = mapper.readValue(array.getString(i),
						TestPojo.class);
				System.out.println(pojoReverse);
				list2.add(pojoReverse);
			}

			System.out.println("list size = " + list.size());
			System.out.println("list2 size = " + list2.size());

			//转换Map
			Map<String, Object> map = new HashMap<String, Object>();
			map.put("key1", "pandy");
			map.put("date", new Date());

			sw = new StringWriter();
			mapper.writeValue(sw, map);
			System.out.println(sw.getBuffer().toString());

			//从字符串得到Map对象
			Map map1 = mapper.readValue(sw.getBuffer().toString(),HashMap.class);
			System.out.println(map1.get("key1"));
			System.out.println(map1.get("date"));

		} catch (JsonParseException e) {
			e.printStackTrace();
		} catch (JsonMappingException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (JSONException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

}



{"name":"011","sex":"022"}

{"name":"111","sex":"122"}

{"name":"211","sex":"222"}

{"name":"311","sex":"322"}

{"name":"411","sex":"422"}

{"name":"511","sex":"522"}

{"name":"611","sex":"622"}

{"name":"711","sex":"722"}

{"name":"811","sex":"822"}

{"name":"911","sex":"922"}

[{"name":"011","sex":"022"},{"name":"111","sex":"122"},{"name":"211","sex":"222"},{"name":"311","sex":"322"},{"name":"411","sex":"422"},{"name":"511","sex":"522"},{"name":"611","sex":"622"},{"name":"711","sex":"722"},{"name":"811","sex":"822"},{"name":"911","sex":"922"}]

TestPojo [name=011, sex=022]

TestPojo [name=111, sex=122]

TestPojo [name=211, sex=222]

TestPojo [name=311, sex=322]

TestPojo [name=411, sex=422]

TestPojo [name=511, sex=522]

TestPojo [name=611, sex=622]

TestPojo [name=711, sex=722]

TestPojo [name=811, sex=822]

TestPojo [name=911, sex=922]

list size = 10

list2 size = 10

{"key1":"pandy","date":1360249830221}

pandy

1360249830221


举报

相关推荐

0 条评论