前言
什么是 JSON ?
JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)
JSON 是轻量级的文本数据交换格式
JSON 独立于语言: JSON 使用 JavaScript 语法来描述数据对象, 但是 JSON 仍然独立于语言和平台. JSON 解析器和 JSON 库支持许多不同的编程语言. 目前非常多的动态 (PHP,JSP,.NET) 编程语言都支持 JSON.
JSON 具有自我描述性, 更易理解
JSON vs xml?
JSON 和 xml 都用于接收 web 服务端的数据.
JSON 和 xml 在写法上有所不同, 如下所示:
JSON 实例
- {
- "sites": [
- { "name":"菜鸟教程" , "url":"www.runoob.com" },
- { "name":"google" , "url":"www.google.com" },
- { "name":"微博" , "url":"www.weibo.com" }
- ]
- }
xml 实例
- <sites>
- <site>
- <name > 菜鸟教程</name> <url>www.runoob.com</url>
- </site>
- <site>
- <name>google</name> <url>www.google.com</url>
- </site>
- <site>
- <name > 微博</name> <url>www.weibo.com</url>
- </site>
- </sites>
JSON 与 xml 的相同之处:
JSON 和 xml 数据都是 "自我描述" , 都易于理解.
JSON 和 xml 数据都是有层次的结构
JSON 和 xml 数据可以被大多数编程语言使用
JSON 与 xml 的不同之处:
JSON 不需要结束标签
JSON 更加简短
JSON 读写速度更快
JSON 可以使用数组
一, JSON 基础语法
语法要点
数据在名称 / 值对中
数据由逗号分隔
大括号保存对象
中括号保存数组
JSON 名称 / 值对
JSON 数据的书写格式是: 名称 / 值对.
名称 / 值对包括字段名称(在双引号中), 后面写一个冒号, 然后是值:
"name" : "菜鸟教程"
JSON 值
JSON 值可以是:
数字(整数或浮点数)
字符串(在双引号中)
逻辑值(true 或 false)
数组(在中括号中)
对象(在大括号中)
null
JSON 数字
JSON 数字可以是整型或者浮点型:
{ "age":30 }
JSON 对象
JSON 对象在大括号 ({}) 中书写:
对象可以包含多个 key/value(键 / 值)对.
{ "name":"菜鸟教程" , "url":"www.runoob.com" }
key 必须是字符串, value 可以是合法的 JSON 数据类型(字符串, 数字, 对象, 数组, 布尔值或 null).
key 和 value 中使用冒号 (:) 分割.
每个 key/value 对使用逗号 (,) 分割.
嵌套 JSON 对象:
JSON 对象中可以包含另外一个 JSON 对象:
实例
- {
- "name":"runoob",
- "alexa":10000,
- "sites": {
- "site1":"www.runoob.com",
- "site2":"m.runoob.com",
- "site3":"c.runoob.com"
- }
- }
JSON 数组
JSON 数组在中括号中书写, 数组值必须是合法的 JSON 数据类型(字符串, 数字, 对象, 数组, 布尔值或 null), 如:
[ "Google", "Runoob", "Taobao" ]
数组也可包含多个对象, 如下面的例子中, 对象 "sites" 是包含三个对象的数组. 每个对象代表一条关于某个网站 (name,url) 的记录:
- {
- "sites": [
- { "name":"菜鸟教程" , "url":"www.runoob.com" },
- { "name":"google" , "url":"www.google.com" },
- { "name":"微博" , "url":"www.weibo.com" }
- ]
- }
JSON 对象中的数组:
实例
- {
- "name":"网站",
- "num":3,
- "sites":[ "Google", "Runoob", "Taobao" ]
- }
JSON 布尔值
JSON 布尔值可以是 true 或者 false:
- {
- "flag":true
- }
- JSON null
JSON 可以设置 null 值:
{ "runoob":null }
在下面的章节, 您将学到如何把 JSON 文本转换为 JavaScript 对象.
JSON 文件
JSON 文件的文件类型是 ".json"
JSON 文本的 MIME 类型是 "application/json"
二, JSON 解析工具
- http://www.json.cn/
- http://c.runoob.com/front-end/53
来源: http://www.bubuko.com/infodetail-3655075.html