1.概念
JSON:JavaScript Object Notation(JavaScript对象表示方法)
是一种轻量级的文本数据格式
JSON独立于语言,具有自我描述性,更易理解
例子:
2.语法规则
数据由键值对描述,由逗号分隔
大括号代表一个完整的对象,拥有多个键值对
中括号保存数组,多个对象之间使用逗号分隔
3.例子
创建一个json文件:
JavaScript读取json文件:
代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript">
var json=[
{
"empname": "张三",
"empno": "111"
},
{
"empname": "李四",
"empno": "112",
"cumstor": [
{
"test": "123"
}
]
}
];
for (var i=0;i<json.length;i++){
var emp=json[i];
document.write(emp.empno);
document.write(emp.empname);
if (emp.cumstor!=null){
for (var j=0;j<emp.cumstor.length;j++){
var cum=emp.cumstor[j];
document.write(cum.test);
}
}
}
</script>
</head>
<body>
</body>
</html>
结果:
4.JSON和字符串的相互转换
(1)JSON.parse()方法将字符串转换为JSON对象
示例代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript">
var str="{ \"empname\": \"张三\"}";
var json = JSON.parse(str);
console.log(str);
console.log(json);
document.write(json.empname);
</script>
</head>
<body>
</body>
</html>
运行结果:
(2)JSON.stringify()方法将JSON对象转换为字符串
示例代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript">
var json = {
"empname": "李四",
"empno": "111"
};
var str1 = JSON.stringify(json);
console.log(str1);
console.log(json);
document.write(json.empname);
document.write(json.empno);
</script>
</head>
<body>
</body>
</html>
5.JSON与Java交互
(1)FastJson——java的JSON工具包
FastJson是阿里巴巴著名的JSON序列号与反序列化工具包
FastJson国内拥有大量的使用者,拥有API简单,效率高等优点
(2)FastJson序列化
employee emp = new employee(1,"黄阳","研发部","工程师",1000);
String json = JSON.toJSONString(emp);
(3)FastJson反序列化
employee emp1 = JSON.parseObject(json,employee.class);
(4)FastJSON对象数组序列化与反序列化
package JSON;
import com.alibaba.fastjson.JSON;
import java.util.ArrayList;
import java.util.List;
public class jsonobject {
public static void main(String[] args) {
List emplist = new ArrayList();
for (int i=0;i<20;i++){
employee emp = new employee();
emp.setEmpno(i);
emp.setEname("黄阳"+i);
emplist.add(emp);
}
//序列化:对象转换为JSON数组
String json = JSON.toJSONString(emplist);
System.out.println(json);
//反序列化:json转换为对象
List<employee> emplist1 = JSON.parseArray(json,employee.class);
for (employee e:emplist1
) {
System.out.print(e.getEname());
}
}
}
运行结果: