JSON教程之JSON-lib轉換JSON爲JavaBean

本節爲如何用JSON-lib把一個JSON對象,轉換爲一個JavaBean。

1、首先根據JSON層次結構,定義對應的JavaBean類,如果JSON對象中嵌套對象,需要定義相應的對象,JavaBean中的屬性名稱必須和JSON中的保持一致

2、把JSON轉換爲JavaBean

JSONObject obj=JSONObject.fromObject(jsonStr);
Boy boy=(Boy) obj.toBean(obj, Boy.class);

如果JavaBean中包含有集合,並且集合中包含有其他的對象,這時候,需要定義一個Map對象,Key值爲集合的名字,Value值爲集合對象的Class

JSONObject obj=JSONObject.fromObject(jsonStr);
Map<String,Class> map=new HashMap<String, Class>();
map.put("girlfriends", GirlFriend.class);
Boy boy=(Boy) obj.toBean(obj, Boy.class,map);

3、下面爲一個示例:

import java.util.HashMap;
import java.util.Map;

import net.sf.json.JSONObject;

/**
 * json-lib解析例類:JSON轉換爲JavaBean對象
 * 主jar包:json-lib-2.4.jdk15.jar
 * 依賴的jar包:commons-beanutils-1.8.0.jar commons-collections-3.2.1.jar commons-lang-2.5.jar ezmorgh-1.0.6.jar
 * @author yuan
 *
 */
public class OfficialJSONToJavaBean {
	/**
	 * JSON To JavaBean 示例,非通用
	 * @param jsonStr
	 */
	public static void jsonToBean(String jsonStr){
		JSONObject obj=JSONObject.fromObject(jsonStr);
		Map map=new HashMap();
		map.put("girlfriends", GirlFriend.class);
		Boy boy=(Boy) obj.toBean(obj, Boy.class,map);
		System.out.println(boy.getName()+"有"+boy.getGirlfriends().size()+"個女朋友!第一個女朋友的胸圍是"+boy.getGirlfriends().get(0).getBust()+",爸爸的名字是:"+boy.getFamily().getFather());
	}
	public static void main(String[] args) {
		String jsonStr="{'name':'yuan','sex':'male','age':'100','family':{'father':'laowang','mother':'xiaofang'},'girlfriends':[{'name':'lily','bust':'36D'},{'name':'lucy','bust':'38D'},{'name':'lily','bust':'32A'}]}";
		OfficialJSONToJavaBean.jsonToBean(jsonStr);
	}
}
/**
 *  example json string
{
  "name": "yuan",
  "sex": "male",
  "age": "100",
   "family":{
    "father":"laowang",
    “mother":"xiaofang"
   },
  "girlfriends": [
    {
      "name": "lily",
      "bust": "36D"
    },
    {
      "name": "lucy",
      "bust": "38D"
    },
    {
      "name": "lily",
      "bust": "32A"
    }
  ]
}
 * */
import java.util.List;

/**
 * Boy對象
 * @author Yuan
 *
 */
public class Boy {
	private  String name;
	private int age;
	private String sex;
	private Listgirlfriends;
	private Family family;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public List getGirlfriends() {
		return girlfriends;
	}
	public void setGirlfriends(List girlfriends) {
		this.girlfriends = girlfriends;
	}
	public Family getFamily() {
		return family;
	}
	public void setFamily(Family family) {
		this.family = family;
	}
	
}
/**
 * 女朋友對象	
 * @author Yuan
 *
 */
public class GirlFriend {
	private String name;
	private String bust;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getBust() {
		return bust;
	}
	public void setBust(String bust) {
		this.bust = bust;
	}
	
}
/**
 * Family對象
 * @author Yuan
 *
 */
public class Family {
	private String father;
	private String mother;
	public String getFather() {
		return father;
	}
	public void setFather(String father) {
		this.father = father;
	}
	public String getMother() {
		return mother;
	}
	public void setMother(String mother) {
		this.mother = mother;
	}
	
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章