在這裏主要簡單的介紹一下,如何使用json-lib這個工具包來完成Java對象(或集合)與json對象(或集合)之間的轉換~
1. Java對象轉換成json(既創建json)
關鍵類:JSONObject jsonObject = JSONObject.from(Object obj);
使用說明:只要將Java對象傳入方法,那麼便可以得到一個JSONObject,然後你便可以直接json.toString();輸出json~
例子:
@Test public void testCreateJson() throws Exception { Employee employee = new Employee("zhangSan", "12"); JSONObject jsonObject = JSONObject.fromObject(employee); System.out.println(jsonObject.toString()); }
輸出結果:
{"age":"12","name":"zhangSan"}
由上面的輸出結果可以看出,JSONObject輸出的json對象的屬性之間的順序是無序的~
2. 字符串轉換成Java對象(既解析json)
關鍵類:JSONObject json = new JSONObject(String jsonString);
json.get(String key); //根據key來獲取值。key對Java對象來說就是屬性名,value就是屬性值
使用說明:首先將json字符串傳入JSONObject對象的構造函數中,得到一個JSONObject對象,再通過該對象進行獲取相應的數據,從而構造出一個Java對象。
例子:
@Test public void testParseJson(){ String jsonString = "{\"age\":\"12\",\"name\":\"zhangSan\"}"; JSONObject json = new JSONObject().fromObject(jsonString); System.out.println(json.get("name")); System.out.println(json.get("age")); }
輸出結果:
zhangSan
12
附錄:Employee代碼的具體實現
public class Employee { private String name; private String age; public String getName() { return name; } public String getAge() { return age; } public void setName(String name) { this.name = name; } public void setAge(String age) { this.age = age; } public Employee(String name, String age) { super(); this.name = name; this.age = age; } public Employee() { super(); } @Override public String toString() { return "[name="+name+",age="+age+"]"; } }
延伸閱讀: