有一种叫做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天生有很好的扩展性,JSON当然也有,没有什么是XML能扩展,JSON不能的。
不过 JSON在Javascript主场作战,可以存储Javascript复合对象,有着XML不可比拟的优势”。
但自从JSON火起来后,JSON的支持包,类库等,相信每个语言都很多。像Java就有Jackson、goson、json-lib、FastJson等等多的去了。
编码难度
XML有有DOM,SAX,STAX等解析技术,JSON也有,都不错。
解码难度
同上。
解码编码效率
解析XML有专用CPU!
JSON常被用作序列化,JAVA中常用的JSON解析方式如下:
JSON官方
GSON
FastJSON
Jackson