JSON是JaScript Object Notation的缩写,是一种数据交换格式。
在JSON出现之前,总是用XML来传输数据。因为XML是一种纯文本格式,所以它适合在网络上交换数据。XML本身并不复杂,但是在加入了很多复杂的规范如DTD、XSD、XPath、XSLT之后,开发者就远离XML了。即使你努力学习了几个月,也不一定能理解那些复杂的XML规范。
最后,在2002年,道格拉斯·克洛克福特发明了JSON,一种超轻量级的数据交换格式。道格拉斯长期担任雅虎的高级架构师,热爱JaScript。他设计的JSON实际上是JaScript的子集。
JSON语法介绍
1.JSON数据类型
number: 和JaScript的number完全一致boolean:就是JaScript的true或falsestring: 就是JaScript的stringnull: 就是JaScript的nullarray: 就是JaScript的Array表示方式[]object: 就是JaScript对象的{}的表示方式
2.JSON数据结构
JSON是一种轻量级的数据交换格式。JSON采用了完全独立于语言的文本格式,但也使用了类似C语言家族(包括C、C++、C#、Ja、JaScript、Perl、Python等)的习惯。).这些特性使JSON成为一种理想的数据交换语言。便于人读写,也便于机器分析生成(网络传输速率)。从结构上讲,所有数据最终都可以分为三种类型:
第一种类型是标量(scalar): 也就是一个单独的字符串(string)或数字(numbers),比如"北京"这个单独的词第二种类型是序列(sequence):也就是若干个相关的数据按照一定顺序并列在一起,又叫做数组(array)或列表(List),比如"北京,上海"第三种类型是映射(mapping): 也就是一个名/值对(Name/value),即数据有一个名称,还有一个与之相对应的值,这又称作散列(hash)或字典(dictionary),比如"首都:北京"
Json的规则非常简单,只用几十个字就能说清楚,而且道格拉斯·克洛克福特声称这个规范永远不需要升级,因为规定了。
3.JSON语法规则
使用逗号(& # 34;, ")分离;
用冒号(& # 34;: ")说;
并行数据的集合(数组)用方括号(& # 34;[]")说;
映射的集合(对象)用大括号(& # 34;{}")说。
数据的最小单位就是这么简单!所有数据(包括统计数据)都可以用四个符号明确标注(根据计算机软件编程规则,数据中的字符要用单引号或双引号括起来,这是一般规则)。在编程语言中,只要有数组和对象,所有的数据都可以被存储和处理。
JSON已经成为最流行的通用数据处理和交换格式,它是JaScript的子集,与JaScript有着天然的血缘关系。JaScript可以轻松处理JSON数据。JSON data强大而简洁的数据表达功能,简直就是为处理统计数据“量身定做”的。在下面的网络统计算法中,JaScript和JSON技术发挥了重要作用!
二、JSON文档案例
1.文本描述性统计数据被转换成json数据。
比如下面这句话:
"北京面积16800平方公里,常住人口1600万。上海面积6400平方公里,常住人口1800万。"
用json格式写的是这样的:
[ {"城市& # 34;:"北京& # 34;,"区域& # 34;:16800,"人口& # 34;:1600}, {"城市& # 34;:"上海& # 34;,"区域& # 34;:6400,"人口& # 34;:1800}]如果事先知道数据的结构,上面的写法可以进一步简化:
[ ["北京& # 34;,16800,1600], ["上海& # 34;,6400,1800]]2、统计数据表到json数据
有如下三个表格:
表1:第一类
(全名)
民族
籍贯
张三
韩(哈)
长春
李四
回族
大连
王武
韩(哈)
哈尔滨
表2:第二类
(全名)
民族
籍贯
李伟民
韩(哈)
沈阳
张群
韩(哈)
济南
王晓芳
回族
西宁
穆玉兰
韩(哈)
兰州
表3:第3类
(全名)
民族
籍贯
吴·
韩(哈)
北京
杨帆
韩(哈)
广州
表中的数据可以表示为JSON:
{ "classA & # 34:[ {"姓名& # 34;:"张三& # 34;,"国籍& # 34;:"汉族& # 34;,"nativeplace & # 34:"长春& # 34;}, {"姓名& # 34;:"李四& # 34;,"国籍& # 34;:"回族& # 34;,"nativeplace & # 34:"大连& # 34;}, {"姓名& # 34;:"王武& # 34;,"国籍& # 34;:"汉族& # 34;,"nativeplace & # 34:"哈尔滨& # 34;} ],"clas & # 34:[ {"姓名& # 34;:"李伟民& # 34;,"国籍& # 34;:"汉族& # 34;,"nativeplace & # 34:"沈阳& # 34;}, {"姓名& # 34;:"张群& # 34;,"国籍& # 34;:"汉族& # 34;,"nativeplace & # 34:"济南& # 34;}, {"姓名& # 34;:"王晓芳& # 34;,"国籍& # 34;:"回族& # 34;,"nativeplace & # 34:"西宁& # 34;}, {"姓名& # 34;:"穆玉兰& # 34;,"国籍& # 34;:"汉族& # 34;,"nativeplace & # 34:"西宁& # 34;} ],"classC & # 34:[ {"姓名& # 34;:"吴& # 34;,"国籍& # 34;:"汉族& # 34;,"nativeplace & # 34:"北京& # 34;}, {"姓名& # 34;:"约翰·扬& # 34;,"国籍& # 34;:"汉族& # 34;,"nativeplace & # 34:"广州& # 34;}]}前三个表中的数据也可以表示为:
[ {"姓名& # 34;:"张三& # 34;,"国籍& # 34;:"汉族& # 34;,"nativeplace & # 34:"长春& # 34;,"班& # 34;:"一班& # 34;}, {"姓名& # 34;:"李四& # 34;,"国籍& # 34;:"回族& # 34;,"nativeplace & # 34:"大连& # 34;,"班& # 34;:"一班& # 34;}, {"姓名& # 34;:"王武& # 34;,"国籍& # 34;:"汉族& # 34;,"nativeplace & # 34:"哈尔滨& # 34;,"班& # 34;:"一班& # 34;}, {"姓名& # 34;:"李伟民& # 34;,"国籍& # 34;:"汉族& # 34;,"nativeplace & # 34:"沈阳& # 34;,"班& # 34;:"二班& # 34;}, {"姓名& # 34;:"张群& # 34;,"国籍& # 34;:"汉族& # 34;,"nativeplace & # 34:"济南& # 34;,"班& # 34;:"二班& # 34;}, {"姓名& # 34;:"王晓芳& # 34;,"国籍& # 34;:"回族& # 34;,"nativeplace & # 34:"西宁& # 34;,"班& # 34;:"二班& # 34;}, {"姓名& # 34;:"穆玉兰& # 34;,"国籍& # 34;:"汉族& # 34;,"nativeplace & # 34:"西宁& # 34;,"班& # 34;:"二班& # 34;}, {"姓名& # 34;:"吴& # 34;,"国籍& # 34;:"汉族& # 34;,"nativeplace & # 34:"北京& # 34;,"班& # 34;:"三班& # 34;}, {"姓名& # 34;:"约翰·扬& # 34;,"国籍& # 34;:"汉族& # 34;,"nativeplace & # 34:"广州& # 34;,"班& # 34;:"三班& # 34;}]可以进一步简化为:
[ ["张三& # 34;,"汉族& # 34;,"长春& # 34;,"一班& # 34;], ["李四& # 34;,"回族& # 34;,"大连& # 34;,"一班& # 34;], ["王武& # 34;,"汉族& # 34;,"哈尔滨& # 34;,"一班& # 34;], ["李伟民& # 34;,"汉族& # 34;,"沈阳& # 34;,"二班& # 34;], ["张群& # 34;,"汉族& # 34;,"济南& # 34;,"二班& # 34;], ["王晓芳& # 34;,"回族& # 34;,"西宁& # 34;,"二班& # 34;], ["穆玉兰& # 34;,"汉族& # 34;,"西宁& # 34;,"二班& # 34;], ["吴& # 34;,"汉族& # 34;,"北京& # 34;,"三班& # 34;], ["约翰·扬& # 34;,"汉族& # 34;,"广州& # 34;,"三班& # 34;]]一般来说,JSON二维数组是约定数据格式前提下最简单的数据格式,尤其是在纯数值统计计算的过程中,二维数组处理多元统计数据非常方便。
第三,JaScript处理JSON数据
JaScript操作JSON数据的案例如下:
[# Code 403]:# Code 403]:操纵JSON数据的JaScript
& lthtml & gt& lthead & gt& ltmeta http-equiv = & # 34;内容类型& # 34;内容= & # 34;文本/html;charset = gb2312 & # 34& gt& lttitle & gtJaScript脚本代码练习
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。