《JSON》
<大纲>
掌握JSON语法的书写规则
掌握JSON与JavaScript的交互技巧
掌握JSON与Java之间的序列化与反序列化
1.JSON介绍
- 轻量级的数据交换格式
- 独立于编程语言的文本格式来存储和表示数据
- 利于人阅读和编写,同时也易于机器解析和生成
2.JSON语法规则
-
JSON是一个标记符的序列。这套标记符包含六个构造字符、字符串、数字和三个****字面名****。
-
JSON是一个序列化的对象或数组。
-
6个构造字符:[]{};:
-
对象由花括号括起来的逗号分割的成员构成,成员是字符串键和上文所述的值由逗号分割的键值对组成
-
数组是由方括号括起来的一组值构成
-
JSON值可以是对象、数组、数字、字符串或者三个字面值(false、null、true)中的一个。
-
例如:
[ { "empno": 7369, "ename": "李宁", "job": "软件工程师", "hiredate": "2017-05-12", "salary": 13000, "dname": "研发部" }, { "empno": 7499, "ename": "王乐", "job": "客户经理", "hiredate": "2017-04-22", "salary": 10000, "dname": "市场部", "customers": [ { "cname": "李东" }, { "cname": "刘楠" } ] } ]
var json2 = {}; json2.class_name = "五年级五班"; json2.floor = "逸夫楼四层"; json2.teacher = "王义夫";
3.在javascript中JSON与字符串互相转化
-
JSON.parse()方法将字符串转换为JSON对象
var str = "{\"class_name\":\"五年级四班\"}"; var json = JSON.parse(str); console.log(str); console.log(json); document.write("班级:" + json.class_name);
-
JSON.stringify()方法将JSON对象转化为字符串
var json1 = {"class_name" : "五年级四班"}; var str1 = JSON.stringify(json1); console.info(json1); console.info(str1);
4.JSON与Java交互
-
Java的JSON工具包有FastJson、JackJson等
-
FastJson是阿里巴巴著名的JSON序列化和反序列化工具包
-
FastJson拥有大量使用者,API简单,效率高
-
FastJson序列化和反序列化与JSON注解
FastJSON中提供了JSON对象,用于完成普通对象与JSON字符串的互相转换
单个对象
-
序列化(普通对象变成JSON字符串)
Employee employee = new Employee(); String json = JSON.toJSONString(employee);
-
反序列化(JSON字符串变成普通对象)
Employee emp = JSON.parseObject(json, Employee.class);
对象集合
-
序列化(集合变成JSON数组)
List emplist = new ArrayList(); String json = JSON.toJSONString(emplist);
-
反序列化(JSON数组变成集合)
List<Employee> emps = JSON.parseArray(json , Employee.class); for(Employee e : emps) { System.out.println(e.getEmpno() + ":" + e.getEname()); }
注意,这里的json数组本质是字符串
Ajax是Java与JavaScript的一种通信方式,通常Java处理数据后返回JSON字符串,
JavaScript利用JSON.parse()将它转化为JSON对象,可以对对象的属性进行操作输出
-