楠槡

JSON学习笔记

2016-11-14

JSON学习笔记

Web学习笔记之——Json


什么是JSON

JSON: JavaScript Object Notation(JavaScript 对象表示法)

JSON 是轻量级的文本数据交换格式
JSON 独立于语言 *
JSON 具有自我描述性,更易理解

JSON 使用 Javascript语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。 目前非常多的动态(PHP,JSP,.NET)编程语言都支持JSON。

优点:

  • JSON 是存储和交换文本信息的语法。类似 XML。
  • JSON 比 XML 更小、更快,更易解析。

与 XML 相同之处

  • JSON 是纯文本
  • JSON 具有”自我描述性”(人类可读)
  • JSON 具有层级结构(值中存在值)
  • JSON 可通过 JavaScript进行解析
  • JSON 数据可使用 AJAX 进行传输

与 XML 不同之处

  • 没有结束标签
  • 更短
  • 读写的速度更快
  • 能够使用内建的 JavaScript eval() 方法进行解析
  • 使用数组
  • 不使用保留字

为什么使用 JSON?

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

使用 XML

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

使用 JSON

  1. 读取 JSON 字符串
  2. 用 eval() 处理 JSON 字符串

JSON 实例

简单实例

这个 sites 对象是包含 3 个站点记录(对象)的数组。

1
2
3
4
5
6
7
{
"sites": [
{ "name":"Derwer" , "url":"www.derwer.com" },
{ "name":"google" , "url":"www.google.com" },
{ "name":"百度" , "url":"www.baidu.com" }
]
}

web实例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JSON-Web实例</title>
</head>
<body>
<h2>JavaScript 创建 JSON 对象</h2>
<p>
网站名称: <span id="jname"></span><br />
网站地址: <span id="jurl"></span><br />
网站标语: <span id="jslogan"></span><br />
</p>
<script>
var JSONObject= {
"name":"Derwer",
"url":"www.derwer.com",
"slogan":"理想 哲思 白日梦!"
};
document.getElementById("jname").innerHTML=JSONObject.name
document.getElementById("jurl").innerHTML=JSONObject.url
document.getElementById("jslogan").innerHTML=JSONObject.slogan
</script>
</body>
</html>

JSON语法

JSON 语法是 JavaScript 语法的子集。

JSON 语法规则

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

  • 数据在名称/值对中
  • 数据由逗号分隔
  • 花括号保存对象
  • 方括号保存数组

JSON 名称/值对

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

1
"UserId" : "Raphael"

这很容易理解,等价于这条 JavaScript 语句:

1
UserId = "Raphael"

JSON 值

JSON 值可以是:

  • 数字(整数或浮点数)
  • 字符串(在双引号中)
  • 逻辑值(true 或 false)
  • 数组(在方括号中)
  • 对象(在花括号中)
  • null

JSON 对象

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

1
{ "WebName":"Derwer" , "url":"www.derwer.com" }

这一点也容易理解,与这条 JavaScript 语句等价:

1
2
WebName = "Derwer"
url = "www.derwer.com"

JSON 数组

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

1
2
3
4
5
6
7
{
"sites": [
{ "name":"Derwer" , "url":"www.derwer.com" },
{ "name":"google" , "url":"www.google.com" },
{ "name":"百度" , "url":"www.baidu.com" }
]
}

上述例子中,对象 “sites” 是包含三个对象的数组。每个对象代表一条站点(信息)的记录。

JSON 使用 JavaScript 语法

因为 JSON 使用 JavaScript 语法,所以无需额外的软件就能处理 JavaScript 中的 JSON。
通过 JavaScript,您可以创建一个对象数组,并像这样进行赋值:
实例

1
2
3
4
5
var sites = [
{ "name":"Derwer" , "url":"www.derwer.com" },
{ "name":"google" , "url":"www.google.com" },
{ "name":"百度" , "url":"www.baidu.com" }
];

可以像这样访问 JavaScript 对象数组中的第一项(索引从 0 开始):

1
sites[0].name;

返回的内容是:

1
Derwer

可以像这样修改数据:
sites[0].name=”Derwer | 世界就在你眼前”;

JSON 文件

JSON 文件的文件类型是 “.json”
JSON 文本的 MIME 类型是 “application/json”

使用支付宝打赏
使用微信打赏

若你觉得我的文章对您有帮助,点击上方按钮请我喝杯咖啡☕

若文章中存在问题,或您有任何意见和疑问,均可与我联系

扫描二维码,分享此文章 📱