01-Json基础

来源:互联网 发布:java heap space 原因 编辑:程序博客网 时间:2024/06/06 12:30

1、json简介(JavaScript Object Notation)

  1. json是完全独立于语言的文本格式、类似于xml文本格式。
  2. 是ECMAScript的一个子集,是一种轻量级的数据交换格式。

2、json与xml的区别

(1) xml的优缺点

优点:
1. 格式统一,符合标准
2. 扩平台、扩系统的数据交互,数据共享方便
缺点:
1. 文件庞大,格式发杂,占带宽较大
2. 客户端和服务器端都需要花大量资源和时间来解析xml,代码复杂不易维护
3. 客户端不同,浏览器之间解析xml方式也不一致,需要重复编写很多代码

(2) json的优缺点

优点:
1. 格式简单,占用带宽小
2. 客户端(JavaScript)解析简单
3. 支持多语言解析,简化服务器端与客户端之间的开发,易于维护
缺点:
1. 没有xml深入人心,也没有xml通用
2. json格式目前在WebService中推广还属于初级阶段

(3) json和xml的对比

1. 可读性方面
  JSON和XML的数据可读性基本相同JSON和XML的可读性可谓不相上下,一边是建议的语法,一边是规范的标签形式,XML可读性较好些
2. 可扩展性方面
  XML天生有很好的扩展性,JSON当然也有,没有什么是XML能扩展,JSON不能的
3. 编码难度方面
  XML有丰富的编码工具,比如Dom4j、JDom等,JSON也有json.org提供的工具,但是JSON的编码明显比XML容易许多,即使不借助工具也能写出JSON的代码,可是要写好XML就不太容易了
4. 解码难度方面
   XML的解析得考虑子节点父节点,让人头昏眼花,而JSON的解析难度几乎为0。这一点XML输的真是没话说
5. 流行度方面
  XML已经被业界广泛的使用,而JSON才刚刚开始,但是在Ajax这个特定的领域,未来的发展一定是XML让位于JSON,到时Ajax应该变成 Ajaj(Asynchronous Javascript and JSON)了
6. 解析手段方面
  JSON和XML同样拥有丰富的解析手段
7. 数据体积方面
  JSON相对于XML来讲,数据的体积小,传递的速度更快些
8. 数据交互方面
  JSON与JavaScript的交互更加方便,更容易解析处理,更好的数据交互
9. 数据描述方面
   JSON对数据的描述性比XML较差
10.传输速度方面
  JSON的速度要远远快于XML

来源: http://www.cnblogs.com/SanMaoSpace/p/3139186.html

3、json语法

1 . json语法规则(json是JavaScript对象表示语法的子集)
  数据在键值对中 —- key : value —- key和value都是在双引号中
  数据由逗号隔开
  花括号保存对象
  方括号保存数组
  
2 . json属性名(键)规范
  属性名应该有意义
  驼峰命名法,ASCII码字符串
  首字母不能是数字(只是规范,实际用引号括起来是可以的)
  当一个属性有子属性,无属性值时,首字母大写

3 . json属性值(值)规范
  数字(整数,浮点数)
  字符串(双引号中)
  Boolean值(true,false)
  数组(方括号中)
  对象(花括号中)
  null
  
4 . 例子(以人为例)
{
  “persons”:[
     {“name”:”zhangsan”,”age”:20},
     {“name”:”lisi”,age:25},
    {“name”:”wangwu”,age:30}
   ]
}

5 . JavaScript获取json中的值
(两种方式:1. 点号获取,2. 方括号方式获取,支持字符串和索引数字)

4、json在线编辑工具

BeJson : http://www.bejson.com/

5、json的序列化与反序列化

以 java 为例,简单来说,所谓json的序列化就是将一个javaBean(或者pojo)序列化成一个Json的字符串,而反序列化则是将json串映射成一个javaBean。

// 比如:简单的例子// 1. 序列化private String name;private int age;// 序列化之后{name:"xxx",age:20}// 2. 反序列化将上面的顺序倒转一下

java中开源的json序列化和反序列工具:比如jackson,json-lib,Gson,fastJson等等, 以及他们之间的性能比较可以查阅相关文档。

0 0