JSON (JavaScript Object Notation)

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

什么是 JSON ?

  • JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)
  • JSON 是轻量级的文本数据交换格式
  • JSON 独立于语言 *
  • JSON 具有自我描述性,更易理解

* JSON 使用 JavaScript 语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。

JSON - 转换为 JavaScript 对象

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

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

JSON 简介

类似 XML

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

相比 XML 的不同之处

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

为什么使用 JSON?

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

使用 XML

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

使用 JSON

  • 读取 JSON 字符串
  • 用 eval() 处理 JSON 字符串

JSON 语法

JSON 语法是 JavaScript 语法的子集。

JSON 语法规则

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

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

JSON 名称/值对

JSON 数据的书写格式是:名称/值对。

名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值:

"firstName" : "John"

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

firstName = "John"

JSON 值

JSON 值可以是:

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

JSON 对象

JSON 对象在花括号中书写:

对象可以包含多个名称/值对:

{ "firstName":"John" , "lastName":"Doe" }

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

firstName = "John"
lastName = "Doe"

JSON 数组

JSON 数组在方括号中书写:

数组可包含多个对象:

{"employees": [{"firstName": "Bill","lastName": "Gates"},{"firstName": "George","lastName": "Bush"},{"firstName": "Thomas","lastName": "Carter"}]
}

在上面的例子中,对象 “employees” 是包含三个对象的数组。每个对象代表一条关于某人(有姓和名)的记录。

JSON 使用 JavaScript 语法

因为 JSON 使用 JavaScript 语法,所以无需额外的软件就能处理 JavaScript 中的 JSON。

通过 JavaScript,您可以创建一个对象数组,并像这样进行赋值:

var employees = [{ "firstName":"Bill" , "lastName":"Gates" },{ "firstName":"George" , "lastName":"Bush" },{ "firstName":"Thomas" , "lastName": "Carter" }
];

可以像这样访问 JavaScript 对象数组中的第一项:

employees[0].lastName;

返回的内容是:

Gates

可以像这样修改数据:

employees[0].lastName = "Jobs";

JSON 文件

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

JSON (JavaScript Object Notation)相关推荐

  1. JSON(JavaScript Object Notation) 格式

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 它使得人们很容易的进行阅读和编写.同时也方便了机器进行解析和生成.JSON采用完全独立于程序语言的文本格 ...

  2. JSON[JavaScript Object Notation]封装

    大家好,今天要和大家讨论的是javascrīpt[以下简称js]封装,高手见笑了!其实js本身就是一个很好的封装!如:数学运算的Math 对象:日期操作的Date 对象:字符串操作的String 对象 ...

  3. JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。VIN车辆识别代号查询系统

    {"animals": {"dog": [{"name": "Rufus","age":15},{& ...

  4. (The application/json Media Type for JavaScript Object Notation (JSON))RFC4627-JSON格式定义

    原文  http://laichendong.com/rfc4627-zh_cn/ 摘要 JavaScript Object Notation (JSON)是一个轻量级的,基于文本的,跨语言的数据交换 ...

  5. JSON(JavaScript Object Notation)数据在python中的读写

    使用json.dump()来存储数字列表: import jsonnumbers = [2, 3, 5, 7, 11, 13]filename = 'numbers1.json' with open( ...

  6. JAVA→XML解析EXtensible Markup Language、JSON解析JavaScript Object Notation

    http://www.json.org.cn/ 古之善为士者,微妙玄通,深不可识. 夫唯不可识,故强为之容: 豫兮若冬涉川:犹兮若畏四邻:俨兮其若客: 涣兮其若凌释:敦兮其若朴:旷兮其若谷:混兮其若浊 ...

  7. 前端开发学习二——由JSON和Object Literal Notation引起的思考

    这篇随笔是今天看公司原来的项目中引用JSON2.js,并调用stringify和parse两个方法在JavaSript Object Literal Notation和JSON之间转换引起的思考. 概 ...

  8. JSON的應用(Javascript Object Nonation)

    摘要 XML--这种用于表示客户端与服务器间数据交换有效负载的格式,几乎已经成了Web services的同义词.然而,由于Ajax和REST技术的出现影响了应用程序架构,这迫使人们开始寻求`XML的 ...

  9. JSON javascript 使用

    http://www.iteye.com/topic/71343 JSON (JavaScript Object Notation)一种简单的数据格式,比xml更轻巧. JSON 是 JavaScri ...

  10. html页面解析json,JavaScript如何解析json?

    javascript如何解析json?下面本篇文章就来给大家介绍一下使用javascript解析json的方法,希望对大家有所帮助. 什么是JSON?JSON 指的是 JavaScript 对象表示法 ...

最新文章

  1. 天地图,js 4.0 api,简单调用,高手请绕行
  2. Linux下编译vtk的java版本,vtk在linux下的安裝(12月8日更新)
  3. Jersey Restful Application with tomcat
  4. 常见虚拟主机目录对照及星外提权目录
  5. 2020-12-09 深度学习 卷积神经网络中感受野的详细介绍
  6. 洞悉linux下的Netfilteriptables
  7. express中response.js 提供的sendFile方法的调试
  8. Docker小白到实战之Docker Compose在手,一键足矣
  9. 用python连接数据库_用Python连接MySQL
  10. jQuery find() 方法的使用总结
  11. GIS二次开发之上一个视图/下一个视图
  12. mysql like 大小写_mysql - 如何使用LIKE通配符在列中搜索(不区分大小写)?
  13. Mybatis案例升级版——小案例大道理
  14. Milne格式MATLAB,matlab考试题
  15. Win7 下 VS2005 不能断点调试解决办法
  16. 《FLUENT 14流场分析自学手册》——1.3 附面层理论
  17. ZZULIOJ1016
  18. 根据城市的名称获取省份的名称
  19. 企业微信异常java.security.InvalidKeyException:illegal Key Size的解决方案,提供jce_policy-8下载
  20. 乌镇世界互联网大会上,百度敲响了创新动能的“牛顿摆”

热门文章

  1. 初次项目:电子通讯录
  2. linux魔兽世界黑屏怎么办,魔兽世界8.1登陆界面黑屏怎么办 魔兽世界8.1登陆界面黑屏解决方法...
  3. python发邮件被认定为垃圾邮件_【Python】垃圾邮件识别
  4. Pytorch3D环境血泪安装史
  5. java 箭头符号_箭头符号大全
  6. 高中职教学专业计算机,中职计算机专业教学的现状与对策
  7. Java的依赖对象是什么意思_面向对象编程依赖注入详解
  8. 执行SOA ——SOA实践指南
  9. Java随机生成加减乘除运算,并记录结果
  10. ADSL拨号代理-构建IP代理池