[魔芋注] 就是一种格式,数据组合的格式。
 
JSON:JavaScript 对象表示法(JavaScript Object Notation)。
JSON 是存储和交换、传输(数据)文本信息的语法(格式)。类似 XML。
JSON 比 XML 更小、更快,更易解析。
 

JSON 通常用于服务端向网页传递数据 。和 XML 一样,JSON 也是基于纯文本的数据格式。除了字符 ",\,/ 和一些控制符(\b,\f,\n,\r,\t)需要编码外,其他 Unicode 字符可以直接输出。下图是一个 String 的完整表示结构:

什么是 JSON ?

  • JSON 是轻量级的文本数据交换格式
  • JSON 独立于语言 * 它不单单适用于JavaScript,也适用于其他语言,如php,Java。
  • JSON 具有自我描述性,更易理解
* JSON 使用 JavaScript 语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。* JSON 使用 JavaScript 语法,但是 JSON 格式仅仅是一个文本。文本可以被任何编程语言读取及作为数据格式传递。

实例

  1. {
  2. "employees":[{
  3. "firstName":"Bill",
  4. "lastName":"Gates"
  5. },{
  6. "firstName":"George",
  7. "lastName":"Bush"
  8. },{
  9. "firstName":"Thomas",
  10. "lastName":"Carter"
  11. }]
  12. }
 
 
这个 employee 对象是包含 3 个员工记录(对象)的数组。

JSON - 转换为 JavaScript 对象

JSON 文本格式在语法上与创建 JavaScript 对象的代码相同。

由于这种相似性,无需解析器,JavaScript 程序能够使用内建的 eval() 函数,用 JSON 数据来生成原生的 JavaScript 对象。

  1. <html>
  2. <body>
  3. <h2>在JavaScript中创建 JSON 对象</h2>
  4. <p>
  5. Name:<span id="jname"></span><br />
  6. Age:<span id="jage"></span><br />
  7. Address:<span id="jstreet"></span><br />
  8. Phone:<span id="jphone"></span><br />
  9. </p>
  10. <script type="text/javascript">
  11. var JSONObject={
  12. "name":"Bill Gates",
  13. "street":"Fifth Avenue New York 666",
  14. "age":56,
  15. "phone":"555 1234567"};
  16. document.getElementById("jname").innerHTML=JSONObject.name;
  17. document.getElementById("jage").innerHTML=JSONObject.age;
  18. document.getElementById("jstreet").innerHTML=JSONObject.street;
  19. document.getElementById("jphone").innerHTML=JSONObject.phone;
  20. </script>
  21. </body>
  22. </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 起源

  • 第一种类型是标量(scalar),也就是一个单独的字符串(string)或数字(numbers),比如“北京”这个单独的词。
  • 第二种类型是序列(sequence),也就是若干个相关的数据按照一定顺序并列在一起,又叫做数组(array)或列表(list),比如“北京”,“上海”。
  • 第三种类型是映射(mapping),也就是一个名/值对(Name/value),即数据由一个名词,还有一个与之相应的值,这又称为散列(hash)或字典(dictionary),比如:“首都”:“北京”
 
 

JSON的缺点:

1,要求字符集必须是Unicode,受约束性强。
2,语法过于严谨,必须遵循JSON语法的四个原则。
 
 
 
 

相关:

 
XML  
    XML是标准通用标记语言(SGML)的子集,非常适合Web传输。
Serialize
    Serialize 是一种类似于JSON的数据格式,但是PHP的serialize是将变量序列化,返回一个具有变量类型和结构的字符串表达式。
Array()
    基本数据类型,不能用于数据的传输和交替。
 

最新文章

  1. java中使用mongodb的几种方式
  2. 升级win8.1后mysql服务不能启动的问题
  3. 用opencv的traincascade训练检测器
  4. .offsetLeft,.offsetTop
  5. ArcGIS实现在线与线交叉处打断线(批量)
  6. WPF中的VisualTreeHelper
  7. Asp.Net Core(.net内核)
  8. Binder机制
  9. hdu 4336 Card Collector 容斥原理
  10. oracle 11g 64位安装sqldeveloper打开不了
  11. Java基础知识强化100:jsp和servlet有什么区别
  12. C++ 的多重继承
  13. c# Linq及Lamda表达式应用经验之 GroupBy 分组
  14. w3wp与w3svc
  15. spring源码 — 四、MVC
  16. 写一个小CTF平台
  17. 打包JAR,MANIFEST.MF格式
  18. 11.5 正睿停课训练 Day16
  19. Golang 处理 Json(一):编码
  20. Spring和Spring MVC包扫描

热门文章

  1. 基于Flink的视频直播案例(上)
  2. 理解javascript中的事件模型
  3. Spring 侵入式和非侵入式
  4. vue中数据接收成功,页面渲染失败
  5. keystore找回密码
  6. Jayway JsonPath实例
  7. sql删除表中重复记录只保留一条记录
  8. IFormattable,ICustomFormatter, IFormatProvider接口
  9. LR接口测试---webservices
  10. Java编辑编译及运行环境