JSON笔记

3 篇文章 0 订阅
2 篇文章 0 订阅

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].firstName
document.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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值