HTML5培训

JSON 数据格式分析

发布时间:2013年 08月 20日   |  作者:衣琳琳

从数据结构上看,任何数据都可以分为三种类型:

第一种类型是标量(scalar),也就是一个单独的字符串(string)或者数字(numbers)。比如“电话”这个词。

第二种类型是序列(sequence),有若干个相关的数据按照一定的顺序排列起来,又叫做数组(array)或者列表数组(list),比如“北京,上海”。

第三种类型是映射(mapping),也就是一个名值对(name/value),即数据有一个名称,还有一个对应的值,这又称作散列(hash)或者字典(dictionary),比如“首都:北京”。而JSON就是这种数据类型的典型扩展。

 

其实JSON已经出现了很长一段时间,网上介绍JSON的文章也很多了,我这里还要说下JSON,是因为前端的发展趋势,是因为HTML5。

JSON作为一种日益流行的数据交换格式,作为JS语法的一个子集,由于其语法的简单,和在JS编程中与生俱来的兼容性,JSON变成了HTML5应用内部数据交换的事实标准。

如果在旧的浏览器中使用JSON,需要JS库(有些可以从http://json.org找到)。在JS中执行解析和序列化效率往往不高,所以为了提高执行速度,现在新的浏览器原生扩展了对json的支持,可以直接通过JS来调用JSON了,这种本地化的JSON对象被纳入了ECMAScript 5标准,成为下一代JS语言的一部分。它也是ECMAScript 5 标准中首批被浏览器支持的功能之一。所有新的浏览器都支持 window.JSON,将来JSON必将大量应用于HTML5 应用中。

JSON用于描述数据结构,主要有以下方式:

首先:JSON对象以 开大括号"{"开始,以关大括号"}"结束。一个对象包含一系列非排序的名/值对。每一个名/值对之间使用逗号","分区;

其次:名/值对中,名称和值之间使用冒号“:”分开,一般形式是{name:value"};

最后:一个名一定是一个字符串;一个值可以是一个字符串(以“”括起来的一串字符),一个数值(一系列0-9的数字集合,可以是负数或者小数。可以用”e“或者”E“表示为指数形式),一个对象,一个布尔型数值,一个数组(串行表,一个或者多个值,使用逗号”,“分区后,使用中括号"[" "]"括起来),或一个null值。

下面是常见的JSON数据写法:


{ "people": [
  { "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" },
  { "firstName": "Jason", "lastName":"Hunter", "email": "bbbb"},
  { "firstName": "Elliotte", "lastName":"Harold", "email": "cccc" }
  ]}



<script>
var a={"城市":"北京","面积":16800,"人口":1600};
alert(a["城市"]);
</script> 数组和JSON对象作为两种数据格式,我们可以通过数组来了解对象。


比如有一个数组a=[1,2,3,4],还有一个对象a={0:1,1:2,2:3,3:4},然后你运行alert(a[1]),两种情况下的运行结果是相同的!这就是说,数据集合既可以用数组表示,也可以用对象表示。

数组和对象有以下区别:

第一:数组表示有序数据的集合,而对象表示无序数据的集合。如果数据的顺序很重要,就用数组,否则就用对象。

第二:数组和对象的另一个区别是,数组的数据没有"名称"(name),对象的数据有"名称"(name)。(关联数组是数组的特例)

第三:在JS中,关联数组就是对象,如一个对象

var a={"城市":"北京","面积":16800,"人口":1600};我们也可以定义成一个关联的数组:



a["城市"]="北京";
a["面积"]=16800;
a["人口"]=1600;


相关文章
js操作cookie存取数据实例与
js操作cookie存取数据实例与
其他文章
提高网页加载速度---CSS
less语言特性(二) ——
less语言特性(一) ——
JavaScript中的一些坑
移动端性能大比拼:CSS
推荐大家使用的CSS书写规
 
 

版权所有:北京博看文思科技有限责任公司|(0.0475537776947s)