简介

JSON: ​J​ava​S​cript ​O​bject ​N​otation(​​JavaScript​​ 对象表示法) 

JSON 是存储和交换文本信息的语法,类似 XML。

JSON 比 XML 更小、更快,更易解析。

JSON 或者 JavaScript 对象表示法是一种轻量级的基于文本的开放标准,被设计用于可读的数据交换。约定使用 JSON 的程序包括 C,C++,Java,Python,Perl 等等。


  • JSON 是 JavaScript Object Notation 的缩写。
  • 这个格式由 Douglas Crockford 提出。
  • 被设计用于可读的数据交换。
  • 它是从 JavaScript 脚本语言中演变而来。
  • 文件名扩展是 ​.json​。
  • JSON 的网络媒体类型是 ​application/json​。
  • 统一标示符类型(Uniform Type Identifier)是 public.json。

JSON 实例

{ 
"employees": [
{ "firstName":"John" , "lastName":"Doe" },
{ "firstName":"Anna" , "lastName":"Smith" },
{ "firstName":"Peter" , "lastName":"Jones" }
]
}

这个 employee 对象是包含 3 个员工记录(对象)的数组。

什么是 JSON ?


  • JSON 指的是 JavaScript 对象表示法(​J​ava​S​cript ​O​bject ​N​otation)
  • JSON 是轻量级的文本数据交换格式
  • JSON 独立于语言 *
  • JSON 具有自我描述性,更易理解

把任何 JavaScript 对象变成 JSON,就是把这个对象序列化成一个 JSON 格式的字符串,这样才能够通过网络传递给其他计算机。

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

JSON - 转换为 JavaScript 对象

JSON 文本格式在语法上与创建 JavaScript 对象的代码相同。由于这种相似性,无需解析器,JavaScript 程序能够使用内建的 eval() 函数,用 JSON 数据来生成原生的 JavaScript 对象。

JSON 使用范围


  • 用于编写基于 JavaScript 应用程序,包括浏览器扩展和网站。
  • JSON 格式可以用于通过网络连接序列化和传输结构化数据。
  • 主要用于在服务器和 Web 应用程序之间传输数据。
  • Web 服务和 APIs 可以使用 JSON 格式提供公用数据。
  • 还可以用于现代编程语言中。

JSON 特点



  • JSON 容易阅读和编写。
  • 它是一种轻量级的基于文本的交换格式。
  • 语言无关。

与 XML 相同之处

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

使用 JSON

为什么使用 JSON?

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

使用 XML

与 XML 不同之处


  • 读取 JSON 字符串
  • 用 eval() 处理 JSON 字符串
  • 读取 XML 文档
  • 使用 XML DOM 来循环遍历文档
  • 读取值并存储在变量中
  • 能够使用内建的 JavaScript eval() 方法进行解析
  • 使用数组
  • 不使用保留字
  • 没有结束标签
  • 更短
  • 读写的速度更快

JSON 简单示例

1、鉴于书籍数据有语言和版本信息,下面的例子展示了使用 JSON 存储书籍信息:

{
"book": [
{
"id":"01",
"language": "Java",
"edition": "third",
"author": "Herbert Schildt"
},
{
"id":"07",
"language": "C++",
"edition": "second",
"author": "E.Balagurusamy"
}]
}

理解上述程序之后我们来看另外一个例子,让我们把下面的代码保存为 ​json.htm​:

<html>
<head>
<title>JSON example</title>
<script language="javascript" >

var object1 = { "language" : "Java", "author" : "herbert schildt" };
document.write("<h1>JSON with JavaScript example</h1>");
document.write("<br>");
document.write("<h3>Language = " + object1.language+"</h3>");
document.write("<h3>Author = " + object1.author+"</h3>");

var object2 = { "language" : "C++", "author" : "E-Balagurusamy" };
document.write("<br>");
document.write("<h3>Language = " + object2.language+"</h3>");
document.write("<h3>Author = " + object2.author+"</h3>");

document.write("<hr />");
document.write(object2.language + " programming language can be studied " +
"from book written by " + object2.author);
document.write("<hr />");

</script>
</head>
<body>
</body>
</html>

现在尝试使用 IE 或者其他任何启用了 JavaScript 的浏览器打开这个页面,它会生成如下所示结果:

JSON简介_json

 2、

<!DOCTYPE html> 
<html>
<body>
<h2>JSON Object Creation in JavaScript</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>
var JSONObject= {
"name":"John Johnson",
"street":"Oslo West 555",
"age":33,
"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>

JSON简介_javascript_02