什么是JSON?
- 全称:JavaScript Object Notation
- 是一种轻量级的数据交换格式
- JSON是用于存储和传输数据的格式
- JSON通常用于服务端向网页传输数据
JSON格式仅仅是一个文本 文本可以被任何编程语言读取 或者作为数据格式传递
可以将JSON数据转换为JavaScript对象
JSON:它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
JSON语法规则
- 数据为键值对
- 每一个数据由键值对隔开
- { } —— 保存数据
- [ ] —— 保存数组
JSON数据封装
<script type="text/javascript">
var Studentdata = {
"name": "KIKO",
"age": "15",
"eat": function() {
alert("吃饭")
}
}
var name = Studentdata.name;
var age = Studentdata.age;
alert(name)
alert(age)
Studentdata.eat()
</script>
JSON数据嵌套
<script type="text/javascript">
var person = {
"name": "TOM",
"age": "25",
"car": {
"carName": "BaoHorse",
"carPrice": "$10000" ,
"carColor": ['black', 'red', 'white'],
}
}
alert(person.name);
alert(person.car.carColor[1])
</script>
数组+遍历数组
<script type="text/javascript">
var p1 = {
"name": "张三",
"age": 23,
"sal": 1000
};
var p2 = {
"name": "李四",
"age": 24,
"sal": 1000
};
var p3 = {
"name": "王五",
"age": 25,
"sal": 1000
};
var p4 = {
"name": "赵六",
"age": 26,
"sal": 1000
};
// js嵌套
var arr01 = [p1, p2, p3, p4]
alert(arr01[1][1]);
// JSON嵌套
var arr02 = [{
"name": "张三",
"age": 23,
"sal": 1000,
}, {
"name": "李四",
"age": 24,
"sal": 1000
}, {
"name": "王五",
"age": 25,
"sal": 1000
}, {
"name": "赵六",
"age": 26,
"sal": 1000
}];
alert(arr02[2].name)
for (index in arr02){
var obj = arr02[index]
for(key in obj){
var v = obj[key]
alert(key+":"+v)
}
}
</script>
相关函数
函数 | 描述 |
---|---|
JSON.parse() | 用于将一个 JSON 字符串转换为 JavaScript 对象。 |
JSON.stringify() | 用于将 JavaScript 值转换为 JSON 字符串。 |
其他语言只能把JSON当成字符串来看待,返回给前台是一个JSON字符串,前台要解析JSON字符串中的数据,就必须先把JSON字符串转换成JSON对象
<script type="text/javascript">
var p1 = {
"number":"001",
"name":"Lily",
"work":"teacher"
}
//JSON对象转换成JSON字符串
var str = JSON.stringify(p1);
alert(str)
//JSON字符串转换成JSON对象
var pp1 = JSON.parse(str)
alert(p1)
for (key in pp1) {
var v = pp1[key]
alert(key+":"+v)
}
// JSON字符串格式 ——————————单引号加{ }
var jsonStr='{"name":"李四","age":23}';
alert(JSON.parse(jsonStr))
</script>
注意事项
- 1.JSON字符串不要美化——不能带有换行空格,否则JSON.parse(jsonStr)就转换不了
- 2.var jsonStr2="{‘name’:‘李四’,‘age’:23}"; 这种格式的JSON字符串是不符合规范的,那么你JSON.parse(jsonStr2)转换不了————只能单引号中加{ }