码迷,mamicode.com
首页 > Web开发 > 详细

JSON

时间:2016-05-06 23:35:11      阅读:424      评论:0      收藏:0      [点我收藏+]

标签:

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。

JSON的四个基本规则

1.并列的数据之间用逗号(",")分隔

2.映射用冒号(":")表示

3.并列数据的集合(数组)用方括号("[]")表示

4.映射的集合(对象)用大括号("{}")表示

举例:

北京市的面基为16800平方公里,常住人口1600万人。上海市的面基为6400平方公里,常住人口1800万。

转换成JSON格式后:

[
{"城市":"北京","面积":16800,"人口":1600},
{"城市":"上海","面积":6400,"人口":1800}
]

JSON优点:

1.数据格式比较简单,易于读写,格式都是压缩的,占用带宽小。

2.支持多种语言,包括ActionScript,C,C#,ColdFusion,Java,JavaScript,Perl,PHP,Python,Ruby等服务器端语言,便于服务器端的解析。

JSON缺点:

1.要求字符集 必须是Unicode,受约束性强

2.语法过于严谨,必须遵循JSON语法四个原则

 

 

JSON的语法可以表示三种类型的值:

1.简单值:使用与JavaScript相同的语法,可以在JSON中表示字符串、数值、布尔值和null,不支持undefined;

JSON表示字符串的方式:“Hello world"(JSON字符串必须使用双引号

2.对象

对象作为一种复杂数据类型,表示一组无序键值对。每个键值对中的值可以是简单值,也可以是复杂数据类型的值;

与JavaScript的对象字面量相比,JSON对象有两个不一样的地方,首先没声明变量,其次,没有末尾的分号;

JavaScript创建对象字面量:(标准写法中属性不用引号,也可以加上引号)

var object={
         name:"Andy",
         age:29
       };

JSON对象:

{
         "name":"Andy",
         "age":29,
         "school":{
            "name":"Hubei Univercity",
            "location":"Wuchang"
         }
       }

 

3.数组:数组也是一种复杂数据类型,表示一组有序的值的列表,可以通过数组索引来访问其中的值。数组的值也可以是任意类型——简单值、对象或数组。

JavaScript中的数组字面量:

var values=[25,"hi",true];

JSON中把数组和对象结合起来:

 {
         {
            "title":"Javascript",
            "authors":[
               "zhangsan"
            ],
            edition:3,
            year:2013
         },
         {
            "title":"HTML",
            "authors":[
               "zhangsan",
               "lisi"
            ],
            edition:3,
            year:2013
         },
{
            "title":"Css",
            "authors":[
               "wangwu"
            ],
            edition:1,
            year:2011
         }
}

JSON数据结构能够被解析为有用的JavaScript对象

把解析JSON数据结构后得到的对象保存到变量books中后,下面一行代码就可取到第三本书的书名

books[2].title

在DOM结构中查找数据的代码:

doc.getElementsByTagName("book")[2].getAttribute("title");

 

 

JSON对象有两个方法:stringify()和parse(),在最简单的情况下,这两个方法分别用于把JavaScript对象序列化为JSON字符串和把JSON字符串解析为原生JavaScript值

 var book = {
            "title":"Javascript",
            "authors":[
               "zhangsan"
            ],
            edition:3,
            year:2013
         };

 

var jsonText=JSON.stringify(book);

 

var bookCopy=JSON.parse(jsonText);

book和bookCopy虽然有相同的属性,但是它们是两个独立的、没有任何关系的对象

 

JSON

标签:

原文地址:http://www.cnblogs.com/luoyanan/p/5467340.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有 京ICP备13008772号-2
迷上了代码!