Json-lib測試類別,如下
package com.jadyer.json;</p><p>import java.util.ArrayList;<br />import java.util.HashMap;<br />import java.util.HashSet;<br />import java.util.List;<br />import java.util.Map;<br />import java.util.Set;</p><p>import net.sf.json.JSONArray;<br />import net.sf.json.JSONObject;</p><p>import com.jadyer.model.Student;<br />import com.jadyer.model.Teacher;</p><p>/**<br /> * Java對JSON的支援不止體現在Json-lib上面,更多資訊請訪問http://www.json.org<br /> * @see 另外還有一款更為強悍的工具包Jackson,其官方網站為http://jackson.codehaus.org<br /> * @see 網上曾有人做過測試,得到結論Jackson>Gson>Json-lib,詳情參見http://wangym.javaeye.com/blog/738933<br /> * @see Json-lib可以將Java中的entity、map、collection、數組和XML轉換成JSON資料格式<br /> * @see 注意json-lib-2.4-jdk15.jar還需要依賴其它的Jar包<br /> * @see 依賴ezmorph-1.0.6、commons-lang-2.5、commons-beanutils-1.8.0、commons-collections3.2.1、commons-logging-1.1.1<br /> * @see Json-lib的官方網站為http://json-lib.sourceforge.net<br /> * @see ezmorph的官方網址為http://ezmorph.sourceforge.net<br /> */<br />public class JsonLibDemo {<br />public static void main(String[] args) {<br />testJavaBean();<br />testMap();<br />testArray();<br />}</p><p>public static void testJavaBean(){<br />Student stu = new Student("沈浪", 22);<br />JSONObject jsonObject = JSONObject.fromObject(stu);<br />System.out.println(jsonObject.toString());</p><p>Teacher teacher = new Teacher();<br />teacher.setName("張起靈");<br />teacher.getStudents().add(new Student("吳邪", 25));<br />teacher.getStudents().add(new Student("黑眼鏡", 26));<br />teacher.getStudents().add(new Student("陳文錦", 27));<br />JSONObject jsonObject22 = JSONObject.fromObject(teacher);<br />System.out.println(jsonObject22.toString());<br />}</p><p>public static void testMap(){<br />Map<String, Object> map = new HashMap<String, Object>();<br />map.put("name", "悶油瓶");<br />map.put("favorate", new String[]{"睡覺", "發獃", "耍酷"});<br />map.put("getFavorate", "function(i){return this.favorate[i]}");<br />JSONObject jsonObject = JSONObject.fromObject(map);<br />System.out.println(jsonObject);<br />}</p><p>public static void testArray(){<br />String[] users = {"趙紅兵", "小北京", "東霸天"};<br />JSONArray jsonArray = JSONArray.fromObject(users);<br />System.out.println(jsonArray.toString());</p><p>Integer[] numbers = {1, 2, 3};<br />jsonArray = JSONArray.fromObject(numbers);<br />System.out.println(jsonArray.toString());</p><p>Boolean[] booleanArray = {true, false, false, true};<br />jsonArray = JSONArray.fromObject(booleanArray);<br />System.out.println(jsonArray.toString());</p><p>List<String> list = new ArrayList<String>();<br />list.add("張小凡");<br />list.add("林驚羽");<br />list.add("萬人往");<br />jsonArray = JSONArray.fromObject(list);<br />System.out.println(jsonArray.toString());</p><p>Set<Student> students = new HashSet<Student>();<br />students.add(new Student("盧易之", 25));<br />students.add(new Student("玉姣龍", 26));<br />students.add(new Student("金羽鳳", 27));<br />jsonArray = JSONArray.fromObject(students);<br />System.out.println(jsonArray.toString());<br />}<br />}
用到的實體類
package com.jadyer.model;<br />public class Student {<br />private String name;<br />private Integer age;<br />/* 兩個屬性的getter和setter方法略 */<br />public Student(){}<br />public Student(String name, Integer age){<br />this.name = name;<br />this.age = age;<br />}<br />}</p><p>package com.jadyer.model;<br />import java.util.HashSet;<br />import java.util.Set;<br />public class Teacher {<br />private String name;<br />private Set<Student> students = new HashSet<Student>();<br />/* 兩個屬性的getter和setter方法略 */<br />}