有这样一个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