1:什么是json?
JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。
它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。
简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。
易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率
json本身是一个对象,主要作用是存储数据(json是存储和交换文本信息的语法,类似XML),json可以存储任何类型的数据。
2.json是干嘛的?
json是存储和交换文本信息的语法,类似XML
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
</body>
<script type="text/javascript">
// 1:
// var arr=[1,2,3];
// alert(arr[0])
// 2:
// var obj={
// name:'tom',
// age:12,
// job:'学生'
// }
// alert(obj.name)
// 3:
// var o={
// arr:['name','age','12'],
// }
// alert(o.arr[0])
// 4:
// var arr=[
// {'name1':'流量1','age1':'2','job1':'学生1'},
// {'name2':'流量2','age2':'12','job2':'学生2'},
// {'name3':'流量3','age':'3','job3':'学生3'}
// ]
//
// alert(arr[2].job3)
// 5:输出打印数据 for in
// var o={
// name:'jack',
// age:12,
// job:'学生',
// sex:'男'
// }
// document.write(o)
// document.write(o.length)
// 取键写法
// for(var i in o){
// document.write(i+'<br>')
// }
// 取值写法
// for(i in o){
// document.write(o[i]+'<br>')
// }
// 6:
// var obj={
// arr:[
// {name:'老栗1','age':1,sex:'男1',h:1},
// {name:'老栗2','age':2,sex:'男2',h:2},
// {name:'老栗3','age':3,sex:'男3',h:3},
// ]
// }
// for(var i=0; i<obj.arr.length;i++){
// document.write(obj.arr[i].name)
// }
</script>
</html>
3:json和XML的区别?
小,快,容易解析
4:json可以存储任何类型的数据
5:json数据格式有2种写法:
1:对象格式
2:数组格式
6:json方法
eval() 将js代码转换成对象/不建议用,安全性太低
json提供2个方法,但是要求浏览器版本高
(现在浏览器不影响了,如果想让方法兼容低版本浏览器,请下载json.js)
stringify() 讲json转换成js字符
**stringify()方法除了可以转换以外,方法中的第2个参数是过滤
* 你要留哪个值,就以数组形式写到方法里面
* 第3个参数是数字 可以改变数据的距离
parse() 将js字符串转换成json
**parse()所有的字符必须加双引号
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
</body>
<script type="text/javascript">
// 1检查json
// alert(typeof JSON)
// 2:parse() 将字符串转成json
// var arr='[{"name":"laoli1","age":"1","sex":"男"},{"name":"laoli1","age":"1","sex":"男"},{"name":"laoli1","age":"1","sex":"男"}]'
// alert(typeof arr)
// alert(arr[0].name)
// var a=JSON.parse(arr);
// alert(typeof a)
// alert(a[0].name)
// 3:eval() 将js代码转换成对象/不建议用,安全性太低
// var arr='[{"name":"laoli1","age":"1","sex":"男"},{"name":"laoli1","age":"1","sex":"男"},{"name":"laoli1","age":"1","sex":"男"}]';
// alert(typeof eval(arr))
// alert(typeof JSON.parse(arr))
// 4:stringify() 讲json转换成js字符
// var obj=[{name:'tom',age:12,h:170},{name:'jack',age:13,h:175},{name:'mac',age:14,h:180}];
// alert(typeof obj)
// var o=JSON.stringify(obj)
// alert(typeof o)
// var o=JSON.stringify(obj,['name','tom'],1)
// alert(o)
</script>
</html>
7:json结构写法
var obj={
"sites": {
"site": [
{
"id": "1",
"name": "菜鸟教程",
"url": "www.runoob.com"
},
{
"id": "2",
"name": "菜鸟工具",
"url": "c.runoob.com"
},
{
"id": "3",
"name": "Google",
"url": "www.google.com"
}
]
}
}
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
</body>
<script type="text/javascript">
var obj={
"sites": {
"site": [
{
"id": "1",
"name": "菜鸟教程",
"url": "www.runoob.com"
},
{
"id": "2",
"name": "菜鸟工具",
"url": "c.runoob.com"
},
{
"id": "3",
"name": "Google",
"url": "www.google.com"
}
]
}
}
//alert(obj.sites.site[0].id)
for(var i=0; i<obj.sites.site.length; i++){
for(var j in obj.sites.site[i]){
document.write(obj.sites.site[i][j]+'<br>')
}
}
//var obj={
// "shop":[
// {
// "name":"Nike",
// "money":"$130",
// "sex":"通用",
// "describe":"2019年春季新款",
// "url":"<img src='img/1.jpg'>"
// },
// {
// "name":"Nike",
// "money":"$130",
// "sex":"通用",
// "describe":"2019年春季新款",
// "url":"<img src='img/2.jpg'>"
// }
// ]
//}
//document.write(obj.shop[1].name)
//document.write(obj.shop[0].url);
// for(var i=0; i<obj.shop.length; i++){
// for(a in obj.shop[i]){
// document.write(obj.shop[i][a]+"<br>")
// }
// }
</script>
</html>