JSON
1. json是什么
它是js提供的一種數據交換格式!
2. json的語法
{}:是對象!
屬性名必須使用雙引號括起來!單引不行!!!
屬性值:null,數值,字符串,數組:使用[]括起來,boolean值:true和false
3. 應用json
var person = {"name":"zhangSan", "age":18, "sex":"male"};
4. json與xml比較
可讀性:XML勝出
解析難度:JSON本身就是JS對象(主場作戰),所以簡單很多
流行度:XML已經流行好多年,但在AJAX領域,JSON更受歡迎。
json-lib
1. 是什么?
它可以把javabean轉換成json串
2. jar包
json-lib的核心jar包有:
json-lib.jar
json-lib的依賴jar包有:
commons-lang.jar
commons-beanutils.jar
commons-logging.jar
commons-collections.jar
ezmorph.jar
3. 核心類
JSONObject --> Map
toString();
JSONObject map = JSONObject.fromObject(person):把對象轉換成JSONObject對象
JSONArray --> List
toString()
JSONArray jsonArray = JSONObject.fromObject(list):把list轉換成JSONArray對象
應用案例:
1 import java.util.ArrayList; 2 import java.util.List; 3 import net.sf.json.JSONArray; 4 import net.sf.json.JSONObject; 5 import org.junit.Test; 6 /** 7 * 演示JSON-LIB小工具 8 */ 9 public class Demo1 { 10 //當map來用 11 @Test 12 public void fun1() { 13 JSONObject map = new JSONObject(); 14 map.put("name", "zhangSan"); 15 map.put("age", 23); 16 map.put("sex", "male"); 17 String s = map.toString(); 18 System.out.println(s); 19 //輸出:{"name":"zhangSan","age":23,"sex":"male"} 20 } 21 //當你已經有一個Person對象時,可以把Person轉換成JSONObject對象 22 @Test 23 public void fun2() { 24 Person p = new Person("liSi", 32, "female"); 25 // 把對象轉換成JSONObject類型 26 JSONObject map = JSONObject.fromObject(p); 27 System.out.println(map); 28 //輸出:{"age":32,"name":"liSi","sex":"female"} 29 } 30 //JSONArray 31 @Test 32 public void fun3() { 33 Person p1 = new Person("zhangSan", 23, "male"); 34 Person p2 = new Person("liSi", 32, "female"); 35 JSONArray list = new JSONArray(); 36 list.add(p1); 37 list.add(p2); 38 System.out.println(list.toString()); 39 //輸出:[{"age":23,"name":"zhangSan","sex":"male"},{"age":32,"name":"liSi","sex":"female"}] 40 } 41 //原來就有一個List,我們需要把List轉換成JSONArray 42 @Test 43 public void fun4() { 44 Person p1 = new Person("zhangSan", 23, "male"); 45 Person p2 = new Person("liSi", 32, "female"); 46 List<Person> list = new ArrayList<Person>(); 47 list.add(p1); 48 list.add(p2); 49 System.out.println(JSONArray.fromObject(list).toString()); 50 //輸出:[{"age":23,"name":"zhangSan","sex":"male"},{"age":32,"name":"liSi","sex":"female"}] 51 } 52 }

1 2 public class Person { 3 private String name; 4 private int age; 5 private String sex; 6 public String getName() { 7 return name; 8 } 9 public void setName(String name) { 10 this.name = name; 11 } 12 public int getAge() { 13 return age; 14 } 15 public void setAge(int age) { 16 this.age = age; 17 } 18 public String getSex() { 19 return sex; 20 } 21 public void setSex(String sex) { 22 this.sex = sex; 23 } 24 public Person() { 25 super(); 26 // TODO Auto-generated constructor stub 27 } 28 public Person(String name, int age, String sex) { 29 super(); 30 this.name = name; 31 this.age = age; 32 this.sex = sex; 33 } 34 @Override 35 public String toString() { 36 return "Person [name=" + name + ", age=" + age + ", sex=" + sex + "]"; 37 } 38 39 40 }