JSON简介

一、JSON是什么?

有一种叫做JSON (JavaScript Object Notation) 的轻量级数据交换格式能够替代XML的工作。它就是JSON。

数据格式比较简单, 易于读写, 格式都是压缩的, 占用带宽小,易于解析这种语言。

客户端JavaScript可以简单的通过eval()进行JSON数据的读取,包括ActionScript, C, C#, ColdFusion,Java,JavaScript,Perl,PHP,Python,Ruby等语言服务器端语言, 便于服务器端的解析。

各语言对JSON支持的特别好,自从Ajax的流行,JSON格式传输就更流行了。


二、表现形式

首先,它是一个字符串,一个有规则的字符串。然后它的表现形式是键值对的,非常类似Java语言里的Map、Objective-C里的字典。

目前我们用到的键值对支持什么呢?可以支持String、Number、Array以及Boolean、null等等。

它的作用是用来交互的,但是不局限于Web项目的前后端交互,接口、配置文件、文件存储等等都可以用它。目前很多移动端项目也会用JSON来传输。


三、优势

  • 简洁、简单、体积小等。

  • 上手容易,高效。

  • 跨语言,目前移动端Android、IOS一般项目构造都是其他语言提供接口(JSON方式),移动端读取接口的方式开发。
    ….


四、与XML的比较

可读性

XML可读性稍好。

可扩展性

有人说:“XML天生有很好的扩展性,JSON当然也有,没有什么是XML能扩展,JSON不能的。

不过 JSON在Javascript主场作战,可以存储Javascript复合对象,有着XML不可比拟的优势”。

但自从JSON火起来后,JSON的支持包,类库等,相信每个语言都很多。像Java就有Jackson、goson、json-lib、FastJson等等多的去了。

编码难度

XML有有DOM,SAX,STAX等解析技术,JSON也有,都不错。

解码难度

同上。

解码编码效率

解析XML有专用CPU!


五、常用JSON库

JSON常被用作序列化,JAVA中常用的JSON解析方式如下:

  • JSON官方

  • GSON

  • FastJSON

  • Jackson