目前Android在使用的Json解析框架主要有Jackson、Gson、FastJson、org.json;
因为Android Studio自带的org.json解析 XML 文件时会将整个 XML 文件的内容解析成树型结构存放在内存中并创建新对象,比较消耗时间和内存,解析速度和效率慢,解析方式和性能完败Gson等开源框架,导致org.json慢慢的也在被淘汰,Andorid开发中还在使用org.json的已经很少,所以我们今天暂时不讨论org.json。
OK,接下来我们来一起简单了解下这3个框架:
Jackson
简介:
Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。
Github:https://github.com/FasterXML/jackson
解析原理:
基于事件驱动,与GSON相同,先创建一个对应于JSON数据的JavaBean类就可以通过简单的操作解析出所需JSON数据。但和Gson解析不同的是,GSON可按需解析,即创建的JavaBean类不一定完全涵盖所要解析的JSON数据,按需创建属性,但Jackson解析对应的JavaBean必须把Json数据里面的所有key都有所对应,即必须把JSON内的数据所有解析出来,无法按需解析。但Jackson的解析速度和效率都要比GSON高
优势
解析效率最高
在数据量大的情况优势尤为明显、占存少
缺点
必须完全解析文档,如果要按需解析的话可以拆分Json来读取,操作和解析方法复杂;
推荐使用情景
适用于需要处理超大型JSON文档、不需要对JSON文档进行按需解析、、性能要求较高的场合
关键代码
ObjectMapper objectMapper = new ObjectMapper();
try {
InputStreamReader isr = new InputStreamReade