代码改变世界

理解Json

2017-03-30 17:05  马尔代夫_珍  阅读(297)  评论(0编辑  收藏  举报

JSON简介 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。
JSON构建的结构:
  1. “名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。
  2. 值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。
  这些都是常见的数据结构。事实上大部分现代计算机语言都以某种形式支持它们。这使得一种数据格式在同样基于这些结构的编程语言之间交换成为可能。
JSON的具体形式
  1、对象是一个无序的“‘名称/值’对”集合。一个对象以“{”开始,以“}”结束。每个“名称”后跟一个“:”,“‘名称/值’对”之间使用“,”分隔。
  2、数组是值(value)的有序集合。一个数组以“[”开始,“]”结束。值之间使用“,”分隔。
  3、值(value)可以是双引号括起来的字符串(String)、数值(number)、true、false、null、对象(object)或者数组(array)。这些结构可以嵌套。
4、字符串(string)是由双引号包围的任意数量Unicode字符的集合,使用反斜体转义。一个字符(character)即一个单独的字符串(characeter string)。
常见的远程数据调用,大都基于XML。
使用XML作为传输格式的优势:
1. 格式统一, 符合标准
2. 容易与其他系统进行远程交互, 数据共享比较方便
缺点:
1. XML文件格式文件庞大, 格式复杂, 传输占用带宽
2. 服务器端和客户端都需要花费大量代码来解析XML, 不论服务器端和客户端代码变的异常复杂和不容易维护
3. 客户端不同浏览器之间解析XML的方式不一致, 需要重复编写很多代码
4. 服务器端和客户端解析XML花费资源和时间
JSON与XML比较
可读性
  JSON和XML的可读性不相上下,一边是建议的语法,一边是规范的标签形式,很难分出胜负。
  可扩展性
  XML天生有很好的扩展性,JSON当然也有,没有什么是XML能扩展,JSON不能的。
  解码难度
  XML的解析得考虑子节点父节点,相对复杂,而JSON的解析难度几乎为0。
  实例比较
  XML和JSON都使用结构化方法来标记数据,下面来做一个简单的比较。
  现假设有一个用户数据包括:用户名、密码、所在部门、性别、年龄。
  用XML表示如下:
  <?xml version="1.0" encoding="utf-8"?>
  <user>
  <name>张三 </name>
  <password>123456</password>
  <department>技术部</department>
  <sex>男</sex>
  <old>30</old>
  </user>
  用JSON表示如下:
  {
  name:"张三",
  password:"123456",
  department:"技术部",
  sex:"男",
  old:30
  }
  与XML一样,JSON也是基于文本的,且它们都使用Unicode编码,同样具有可读性。XML比较适合于标记文档,而JSON却更适合于时行数据交换处理。一个JSON文档的每一个实例都负责描述一个对象—具体的描述是通过使用嵌套的对象,数组,字符串,数字,布尔值或null值来实现的。相对而言,相同的数据量,JSON数据格式传输量比XML要小很多,以上述例子,XML有147个字符,而JSON只有61个字符。
JSON为JavaScript的一个子集,是一种轻量级的和高度灵活的处理数据交换的方式。与传统的XML处理技术相比,这个工具的分析速度更快且更为易用。从该工具的性能和使用现状来看,它有可能会成为下一代Web 2.0开发中XML数据操作的主要替代者。
正因为JSON是javascript的一个子集,它可以很方便的在web页面上使用,通过ajax技术,很容易实现数据与调用网站的集成。
JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 Web 客户机传递给服务器端程序将服务器数据转换成JSON数据格式,通过HTML页面的动态JS文件加载,即可使用JS文件的JSON数据。

 

http://hbe.hubs1.net/hjson/doc/content.htm