JSONArrayを対応するオブジェクト配列に変換します。

1580 ワード

一つのjson配列の中に一つのオブジェクトだけの情報があると仮定して、オブジェクトに変換するのは簡単です。複数のオブジェクト情報を含むJSONArrayを一つのオブジェクトのListに変換することを考えます。
ここでは小さな例を使って過程を説明します。
まず私たちはピープルのクラスを作りました。
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の情報を保存して、Object Mapperを使ってListオブジェクトにマッピングします。
参照が必要なjarバッグはjson-lib-09.jar、jackson-mapper-asl-1.9.13.jar、jackson-core-asl-1.9.11.jarがあります。
public static void main(String[] args) {
		List 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)objm.readValue(pjson.toString(),javaType);
		} catch (Exception e) {
			e.printStackTrace();
		}
		for(int i=0;i