JSON学习笔记

时间:2022-04-29
本文章向大家介绍JSON学习笔记,主要内容包括JSON学习笔记、什么是JSON、JSON 实例、JSON语法、JSON 文件、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。

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 个站点记录(对象)的数组。

{
"sites": [
{ "name":"Derwer" , "url":"www.derwer.com" }, 
{ "name":"google" , "url":"www.google.com" }, 
{ "name":"百度" , "url":"www.baidu.com" }
]
}

web实例

<!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 数据的书写格式是:名称/值对。 名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值:

"UserId" : "Raphael"

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

UserId = "Raphael"

JSON 值

JSON 值可以是:

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

JSON 对象

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

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

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

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

JSON 数组

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

{
"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,您可以创建一个对象数组,并像这样进行赋值: 实例

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

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

sites[0].name;

返回的内容是:

Derwer

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

JSON 文件

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