一、JSON定義
JSON(JavaScript Object Notation)是一種輕量級的與語言無關的數據交換格式。它基於 ECMAScript 的一個子集。
JSON 採用完全獨立於語言的文本格式,但是也使用了類似於 C 語言家族的習慣。這些特性使 JSON 成爲理想的數據交換語言。易於人閱讀和編寫,同時也易於機器解析和生成(一般用於提升網絡傳輸速率)。
二、JSON的作用:
- 使用 Ajax 進行前後臺數據交換
- 移動端與服務端的數據交換
三、JSON的數據格式
JSON 有兩種格式:
- 對象格式:{“key1”:obj,“key2”:obj,“key3”:obj…}
- 數組/集合格式:[obj,obj,obj…]
例如:
user 對象,用 JSON 數據格式表示:
{"username":"zhangsan","age":28,"password":"123","addr":"北京"}
List 用JSON數據格式表示:
[{"pid":"10","pname":"小米4C"},{...},...]
注意:對象格式和數組格式可以互相嵌套,互相包含。
注意:JSON 的 key 是字符串,JSON 的 value 是 Object。
四、JSON的解析:
JSON 是 JS 的原生內容,也就意味着 JS 可以直接取出 JSON 對象中的數據。
五、JSON的轉換插件
在實際的開發中,我們經常會使用 JSON 串作爲數據傳輸的載體,例如瀏覽器端頁面中的 JS 與服務端的數據交互,Android/IOS 移動端與服務端的數據交互都大量使用JSON。
但我們發現,使用 Java 代碼手動拼接 JSON 串是一個很耗時很繁瑣的事情,所以一批json的自動轉換的工具出現了。即可以自動的將對象、數組、集合等轉換成 JSON 串,也可以將一個JSON串轉成對象、數組和集合。
常用的JSON轉換工具有如下幾種:
- jsonlib: 是一個 Java 類庫,開發時需要導入6個 jar 包
- Gson:Google產品
- Fastjson:阿里巴巴技術團隊的產品,號稱是最快的JSON轉換工具
使用 Fastjson 工具示例(真方便!):
public static void main(string[] args) {
Student stu1 = new Student("jack", 20);
Student stu2 = new Student("rose",19);
Student stu3 = new Student("tom",18);
// 對象的轉換
String jsonString = JSON.toJSONString(stu1);
System.out.println(jsonString);
Student parseObject = JSON.parseObject(jsonString, Student.class);
System.out.println(parseObject);
// 數組的轉換
List<Student> list = new ArrayList<Student>();
list.add(stu1);
list.add(stu2);
list.add(stu3);
string jsonString2 = JSON.toJSONstring(list);
System.out.println(jsonString2);
List<student> parseArray = JSON.parseArray(isonString2, Student.class);
System. out.println(parseArray);
}
效果: