使用json-lib把JSON对象转换成java bean list的例子

有这样一个JSON对象

[{\"userkey\":\"\",\"xingming\":\"name\",\"xingbie\":0,\"chushengriq\":\"\",\"height\":\"\",\"weight\":\"\"},{\"userkey\":\"\",\"xingming\":\"name2\",\"xingbie\":1,\"chushengriq\":\"\",\"height\":\"\",\"weight\":\"\"}]

现要把这个对象转换成bean。自己学着写了个例子。

依赖包:json-lib

步骤如下:

1.根据json内容新建java bean类

Person.java

public class Person {
	private String ID;
	private String xingming;
	private int xingbie;
	private String chushengriq;
	private double height;
	private double weight;
//省略getter和setter方法
//...
	public String toString(){
		return xingming+" "+xingbie;
		
	}
}


2.自定义的JSONHelper类,核心方法是toBeanList.

<pre name="code" class="java">package com.yiliao.json;

import java.util.ArrayList;
import java.util.List;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public class JSONHelper {
	private JSONArray ja;

	public JSONHelper() {
		setJa();
	}

	public JSONArray getJa() {
		return ja;
	}

	public void setJa(JSONArray ja) {

		this.ja = ja;
	}

	public String getJaStr() {
		String jaStr = "[{\"userkey\":\"\",\"xingming\":\"name\",\"xingbie\":0,\"chushengriq\":\"\",\"height\":\"\",\"weight\":\"\"},{\"userkey\":\"\",\"xingming\":\"name2\",\"xingbie\":1,\"chushengriq\":\"\",\"height\":\"\",\"weight\":\"\"}]";

		return jaStr;
	}

	public void setJa() {
		String jaStr = getJaStr();
		ja = JSONArray.fromObject(jaStr);
	}

	/**
	 * 从JSONArray中得到JSONObject 再根据类名使用JSONObject自带的toBean方法,映射到相关的类
	 * 
	 * @param className
	 *            要映射的类
	 * @return 要映射类的集合
	 */
	public List<Object> toBeanList(Class<?> className) {
		List<Object> list = new ArrayList<Object>();
		for (int i = 0; i < ja.size(); i++) {
			JSONObject jo = ja.getJSONObject(i);
			Object o = JSONObject.toBean(jo, className);
			list.add(o);
		}
		return list;
	}

}


 

3.测试类,不解释了。。

public class Test {

	public static void main(String[] args) {
		JSONHelper jh = new JSONHelper();
		jh.setJa();
		List<Object> list = jh.toBeanList(Person.class);
		for (Object object : list) {
			System.out.println((Person) object);
		}
	}

}

输出:
name 0
name2 1


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值