JSON学习

JSON: javascript 对象表示法
JSON是存储和交换文本信息的语法,类似XML。
JSON比XML更小,更快,更易解析


什么是JSON?
JSON指的是Javascript对象表示法
JSON是轻量级的文本数据交换格式
JSON独立于语言
JSON具有自我描述性,更易理解


JSON使用Javascript语法来描述数据对象,但是JSON仍然独立于语


言和平台。JSON解析器和JSON库支持多种语言


JSON--转换为Javascript对象
JSON文本格式在语法上与创建Javascript对象的代码相同。
由于这种相似性,无需解析器,Javascript程序能够使用内建的eval


()函数,用JSON数据来生成原生的Javascript对象。




类似XML:
JSON是纯文本,具有自我描述性,具有层级结构(值中存在值),可


通过Javascript进行解析,可使用AJAX进行传输


相比XML的不同之处
没有结束标签
更短
读写的速度更快
能够使用内建的javascript eval()方法进行解析
使用数组
不使用保留字


为什么使用JSON
对于AJAX应用程序来说,JSON比XML更快更易使用


使用XML
读取XML文档
使用XML DOM来循环遍历文档
读取值并存储在变量中


使用JSON
读取JSON字符串
使用eval()处理JSON字符串


JSON语法
json语法是javascript语法的子集


json语法规则
json语法是javascript对象表示法语法的子集
数据在名称/值对中
数据由逗号分隔
花括号保存对象
方括号保存数组


JSON名称/值对
JSON数据的书写格式是:名称/值对
名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是



"firstName":"John"


JSON值
json值可以是:
数字(整数或浮点数)
字符串(在双引号中)
逻辑值(true或false)
数组(在方括号中)
对象(在花括号中)
null


JSON对象
JSON对象在花括号中书写:
对象可以包含多个名称/值对:
{"firstname":"John","lastname":"Doe"}


JSON数组
JSON数组在方括号中书写:
数组可包含多个对象:
{
  "employees":[
{"firstname":"john","lastname":"Doe"},
{"firstname":"Anna","lastname":"Smith"},
{"firstname":"peter","lastname":"jones"}
]
}
在这个例子中,对象"employees"是包含三个对象的数组。




JSON使用javascript语法
因为JSON使用Javascript语法,所以无需额外的软件就能处理


Javascript中的JSON。
通过Javascript,您可以创建一个数组对象,并赋值:
var employees = [{"firstname":"Bill","lastName":"Gates"},
{"firstname":"George","lastName":"Bush"},
{"firstname":"Thomas","lastName":"Carter"}
];




JSON文件
json文件的类型是.json
json文件的MIME类型是"application/json"




JSON使用
把JSON文本转换为javascript对象
JSON最常见的用法之一,是从web服务器上读取JSON数据(作为文件


或者HttpRequest),将JSON数据转换为Javascript对象,然后在网


页中使用该数据。




JSON 实例 - 来自字符串的对象
创建包含 JSON 语法的 JavaScript 字符串:
var txt = '{ "employees" : [' +
'{ "firstName":"Bill" , "lastName":"Gates" },' +
'{ "firstName":"George" , "lastName":"Bush" },' +
'{ "firstName":"Thomas" , "lastName":"Carter" } ]}';
由于 JSON 语法是 JavaScript 语法的子集,JavaScript 函数 


eval() 可用于将 JSON 文本转换为 JavaScript 对象。
eval() 函数使用的是 JavaScript 编译器,可解析 JSON 文本,然


后生成 JavaScript 对象。必须把文本包围在括号中,这样才能避免


语法错误:
var obj = eval ("(" + txt + ")");
在网页中使用 JavaScript 对象:


例子
<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 解析器
提示:eval() 函数可编译并执行任何 JavaScript 代码。这隐藏了


一个潜在的安全问题。
使用 JSON 解析器将 JSON 转换为 JavaScript 对象是更安全的做


法。JSON 解析器只能识别 JSON 文本,而不会编译脚本。
在浏览器中,这提供了原生的 JSON 支持,而且 JSON 解析器的速度


更快。
较新的浏览器和最新的 ECMAScript (JavaScript) 标准中均包含了


原生的对 JSON 的支持。
Web 浏览器支持
Firefox (Mozilla) 3.5
Internet Explorer 8
Chrome
Opera 10
Safari 4


Web 软件支持
jQuery
Yahoo UI
Prototype
Dojo
ECMAScript 1.5

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值