JSON笔记

来源:互联网 发布:电信网络卡贴 编辑:程序博客网 时间:2024/05/24 07:38

JSON(JavaScript Object Notation)JavaScript对象表示法 是一种轻量级的数据交换格式,它是基于ECMAScript的一个子集。

json简单说就是通过对象和数组两种结构来表示各种复杂的结构。

举个栗子(w3school上的):

var people = {    "employees":[        {"firstName":"Bill", "lastName":"Gates"},        {"firstName":"George", "lastName":"Bush"},        {"firstName":"Thomas", "lastName":"Carter"}    ]}
对象employees对应一个数组,数组中存储了三组值。

访问数据:people.employees[0].firstName , 这个值就是Bill。

JSON语法规则:

JSON语法是JavaScript对象表示法语法的子集。

(1)数据在名称/值对中

(2)数据由逗号分隔

(3)花括号保存对象

(4)方括号保存数组


JSON数据的书写格式是:名称/值对。比如:

"firstName" : "John"等价于JavaScript:firstName = "John"

JSON的值可以是:

(1)数字(整数或浮点数)

(2)字符串(在双引号中)

(3)逻辑值(true或false)

(4)数组(在方括号中)

(5)对象(在花括号中)

(6)null

JSON对象:

JSON对象在花括号中书写,对象可以包含多个名称/值对:

{"firstName" : "John", "lastName" : "Doe"}


JSON数组:

JSON数组在方括号中书写,数组可以包含多个对象。


JSON的使用:

JSON最常见的用法之一,是从web服务器上读取JSON数据(作为文件或作为HttpRequest),将JSON数据转换为JavaScript对象,然后在网页中使用该数据。

var txt = '{ "employees" : [' +'{ "firstName":"Bill" , "lastName":"Gates" },' +'{ "firstName":"George" , "lastName":"Bush" },' +'{ "firstName":"Thomas" , "lastName":"Carter" } ]}';

var obj = eval ("(" + txt + ")");

<p>First Name: <span id="fname"></span><br />Last Name: <span id="lname"></span><br /></p><script type="text/javascript">document.getElementById("fname").innerHTML = obj.employees[1].firstNamedocument.getElementById("lname").innerHTML = obj.employees[1].lastName</script>

由于JSON语法是JavaScript语法的子集,JavaScript函数eval()可用于将JSON文本转换为JavaScript对象。eval()函数使用的是JavaScript的编译器,可解析JSON文本(必须把文本包围在括号中)。

但是,eval()函数可编译并执行任何JavaScript代码,这隐藏了一个潜在的安全问题。

使用JSON解析器将JSON转换为JavaScript对象是更安全的做法,JSON解析器只能识别JSON文本,不会编译脚本。在较新的浏览器中提供了原生的JSON支持,而且JSON解析器的速度更快。

jQuery.parseJSON()函数用于将格式完好的JSON字符串转为与之对应的JavaScript对象

所谓"格式完好",就是要求指定的字符串必须符合严格的JSON格式,例如:属性名称必须加双引号、字符串值也必须用双引号

如果传入一个格式不"完好"的JSON字符串将抛出一个JS异常。

$.parseJSON(json) 或 如果浏览器提供了一个本地的JSON.parse()方法,则jQuery将使用它来解析JSON字符串。


0 0
原创粉丝点击