json 总结
2018-08-13 07:48:14来源:博客园 阅读 ()
1、什么是JSON
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。JSON是用字符串来表示Javascript对象;
记住一句话:json字符串就是js对象的一种表现形式(字符串的形式)
既然我们已经学过python的json模块,我们就用它来测试下json字符串和json对象到底是什么
1 import json
2 i=10
3 s='hello'
4 t=(1,4,6)
5 l=[3,5,7]
6 d={'name':"yuan"}
7
8 json_str1=json.dumps(i)
9 json_str2=json.dumps(s)
10 json_str3=json.dumps(t)
11 json_str4=json.dumps(l)
12 json_str5=json.dumps(d)
13
14 print(json_str1) #'10'
15 print(json_str2) #'"hello"'
16 print(json_str3) #'[1, 4, 6]'
17 print(json_str4) #'[3, 5, 7]'
18 print(json_str5) #'{"name": "yuan"}'
这里面的json_str就是json字符串;
那么json字符串里都可以放哪些值呢?
JSON字符串内的值:
- 数字 (整数或浮点数)
- 字符串 (在双引号中)
- 逻辑值 (true 或 false)
- 数组 (在方括号中)
- 对象 (在花括号中,引号用双引)
- null
看着是不是有点眼熟啊,对了,这就是咱们js的数据对象;不管是python还是其它语言,它们都有自己的数据类型,但如果要处理成json字符串那么,就要把数据换转成js对应的数据对象(比如python的元组就被处理成了数组,字典就被处理成object),再加上引号就是咱们的json字符串了;
前端接受到json字符串,就可以通过JSON.parse()等方法解析成json对象(即js对象)直接使用了。
之所以称json对象为js的子集,是因为像undefined,NaN,{'name':'yuan'}等都不在json对象的范畴。
2、python 与 json 对象的对应
1 python --> json
2 dict object
3 list,tuple array
4 str,unicode string
5 int,long,float number
6 True true
7 False false
8 None null
让我们看一个带方法的json对象:
1 var person = {"name":"alex",
2 "sex":"men",
3 "teacher":{
4 "name":"tiechui",
5 "sex":"half_men",
6 },
7 "bobby":['basketball','running'],
8
9 "getName":function() {return 80;}
10 };
11 alert(person.name);
12 alert(person.getName());
13 alert(person.teacher.name);
14 alert(person.bobby[0]);
person是一个json对象,因为它满足json规范:在json六大范畴且引号双引!
3、.parse()和.stringify()
1 parse() 用于从一个json字符串中解析出json对象,如
2
3 var str = '{"name":"yuan","age":"23"}'
4
5 结果:JSON.parse(str) ------> Object {age: "23",name: "yuan"}
6
7
8 stringify()用于从一个json对象解析成json字符串,如
9
10 var c= {a:1,b:2}
11
12 结果: JSON.stringify(c) ------> '{"a":1,"b":2}'
13
14 注意1:单引号写在{}外,每个属性名都必须用双引号,否则会抛出异常。
15 注意2:
16
17 a={name:"yuan"}; //ok
18 b={'name':'yuan'}; //ok
19 c={"name":"yuan"}; //ok
20
21 alert(a.name); //ok
22 alert(a[name]); //undefined
23 alert(a['name']) //ok
4、django向js发送数据
1 def login(request):
2 obj={'name':"alex111"}
3 return render(request,'index.html',{"objs":json.dumps(obj)})
4 #----------------------------------
5 <script>
6 var temp={{ objs|safe }}
7 alert(temp.name);
8 alert(temp['name'])
9 </script>
此外,还可以通过ajax技术使js接受django相应的json数据。
5、JSON与XML比较
- 可读性: XML胜出;
- 解码难度:JSON本身就是JS对象(主场作战),所以简单很多;
- 流行度: XML已经流行好多年,但在AJAX领域,JSON更受欢迎。
注解:其实本没什么json对象,只是我们自己这么称呼罢了,所谓的json数据就是指json字符串,在前端解析出来的对象就是js对象的一部分!
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- python day1-requests 2019-08-13
- Python基础总结之初步认识---class类的继承(终)。第十六天 2019-08-13
- python变量和常量 2019-08-13
- Django和前端用ajax传输json等数据 2019-08-13
- Python基础总结之第二天从变量开始(新手可相互督促) 2019-07-24
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash