JSON:javascript对象表示法(javascript Object Notation);
JSON 是轻量级的存储和交换文本信息的语法;
json独立于语言;
json文本格式在语法上与创建javascript对象的代码相同,无需解析器,javascript程序能够内建eval()函数,用json数据生成原生的javascript对象。
一、示例
通过我们的编辑器,您可以在线编辑 JavaScript 代码,然后通过点击一个按钮来查看结果:
<html> <body> <h2>在 JavaScript 中创建 JSON 对象</h2> <p> Name: <span id="jname"></span><br /> Age: <span id="jage"></span><br /> Address: <span id="jstreet"></span><br /> Phone: <span id="jphone"></span><br /> </p> <script type="text/javascript"> var JSONObject= { "name":"Bill Gates", "street":"Fifth Avenue New York 666", "age":56, "phone":"555 1234567"}; document.getElementById("jname").innerHTML=JSONObject.name document.getElementById("jage").innerHTML=JSONObject.age document.getElementById("jstreet").innerHTML=JSONObject.street document.getElementById("jphone").innerHTML=JSONObject.phone </script> </body> </html>
二、特性
类似 XML:
- JSON 是纯文本
- JSON 具有“自我描述性”(人类可读)
- JSON 具有层级结构(值中存在值)
- JSON 可通过 JavaScript 进行解析
- JSON 数据可使用 AJAX 进行传输
相比 XML 的不同之处:
- 没有结束标签
- 更短
- 读写的速度更快
- 能够使用内建的 JavaScript eval() 方法进行解析
- 使用数组
- 不使用保留字
为什么使用 JSON?
对于 AJAX 应用程序来说,JSON 比 XML 更快更易使用:
使用 XML
- 读取 XML 文档
- 使用 XML DOM 来循环遍历文档
- 读取值并存储在变量中
使用 JSON
- 读取 JSON 字符串
- 用 eval() 处理 JSON 字符串
三、json语法
1、语法规则:
json语法是javascript语法的子集:
数据在名称/值对中;
数据由逗号分隔;
花括号保存对象;
方括号保存数组;
JSON名称/值对
JSON数据的书写格式是名称/值对。
“字段名称”:“值”
//JSON "firstName":"john" //相当于javascript里的: firstName:"john"
2、json的值
包括以下几中类型:
数字:整数或浮点数;
字符串:在双引号内;
逻辑值:true或false;
数组:在方括号内;
对象:在花括号呢;
null
3、json对象
JSON对象在花括号中书写;
对象可以包含多个名值对;
//json对象
{ "firstName":"John", "lastName":"Done" }
//相当于以下javascript对象
firstName:"John";
lastName:"Doe"
4、JSON数组
JSON数组在方括号内书写:
数组可包含多个对象:
{ employees:[ {"firstName":"John","lastName":"Doe"}, {"firstName":"Anna","lastName":"Smith"}, {"firstName":"Peter","lastName":"Jones"}, ] }
5、JSOn使用javascript语法:
示例:
JSON使用javascript语法,通过javascript创建一个数组对象,并进行赋值:
var employees=[ { "firstName":"Bill" , "lastName":"Gates" }, { "firstName":"George" , "lastName":"Bush" }, { "firstName":"Thomas" , "lastName": "Carter" } ]
//访问:
employees[0]:lastName;
//修改:
employees[0]:"Jobs";
四、JSON的使用:
1、把json文本转换为Javascript对象
JOSN常见的用法之一是从web服务器上读取JSON数据(作为文件或者是HttpRquest),将JSON数据转换为javascript对象;在网页中使用该数据;
2、JSON解析器
eval()函数可编译并执行javascript代码。
使用 JSON 解析器将 JSON 转换为 JavaScript 对象是更安全的做法。JSON 解析器只能识别 JSON 文本,而不会编译脚本。
在浏览器中,这提供了原生的 JSON 支持,而且 JSON 解析器的速度更快。
较新的浏览器和最新的 ECMAScript (JavaScript) 标准中均包含了原生的对 JSON 的支持。
Web 浏览器支持 | Web 软件支持 |
---|---|
|
|