将JSONArray转换为对应的对象数组

假设一个json数组中只有一个对象的信息,将其转换为对象很简单。现在我们考虑将一个包含多个对象信息的JSONArray转换为一个对象的List<Object>。

在这里我们用个小例子说明一下过程。

首先我们建立了一个People的类

public class People {
	private String name;
	private Integer age;
	private String sex;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Integer getAge() {
		return age;
	}
	public void setAge(Integer age) {
		this.age = age;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
}


然后我们新建一个JSONArray存放多个People的信息,然后使用ObjectMapper将其映射到List<People>对象

需要引用的jar包有json-lib-0.9.jar,jackson-mapper-asl-1.9.13.jar,jackson-core-asl-1.9.13.jar.

public static void main(String[] args) {
		List<People> device=null;
		JSONArray pjson=new JSONArray();
		JSONObject cjson1=new JSONObject();
		cjson1.put("name", "小皮");
		cjson1.put("sex", "男");
		cjson1.put("age", 23);
		JSONObject cjson2=new JSONObject();
		cjson2.put("name", "教主");
		cjson2.put("sex", "男");
		cjson2.put("age", 25);
		pjson.put(cjson1);
		pjson.put(cjson2);
		ObjectMapper objm = new ObjectMapper();
		JavaType javaType = objm.getTypeFactory().constructParametricType(List.class, People.class);
		try {
			device=(List<People>)objm.readValue(pjson.toString(),javaType);
		} catch (Exception e) {
			e.printStackTrace();
		}
		for(int i=0;i<device.size();i++){
			System.out.println("姓名:"+device.get(i).getName()+",性别:"+device.get(i).getSex()+",年龄:"+device.get(i).getAge());
		}
	}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值