json嵌套数据处理(fastJson,json-lib,jackJson)

业务场景:调用API接口,获取到返回数据为JSON格式,且多重嵌套。

Json数据格式

json嵌套数据处理(fastJson,json-lib,jackJson)_第1张图片

json嵌套数据处理(fastJson,json-lib,jackJson)_第2张图片

实体类Result定义类、嵌套类

json嵌套数据处理(fastJson,json-lib,jackJson)_第3张图片

       在使用fastJson的JSON.pareseArray转换时,注意这里必须用List<>。否则会转换异常报错

com.alibaba.fastjson.JSONException: syntax error, expect {, actual [, pos 714, fieldName proSpec, fastjson-version 1.2.54

这里是因为json数据ProSpec后面是“[”

json嵌套数据处理(fastJson,json-lib,jackJson)_第4张图片

众所周知,这个“[”会被解析成数组。如果在Result中不用List<>,会被认为单个对象,发生转换错误。

而使用第二种方法,仅仅用jackSon处理,在Result中这样设置实体类

      

并不会出问题。这是因为根本不涉及json TO bean的转换。也就是说,使用jackSon。在实体类中,两种嵌套类的写法都是可以的。

第一种:jsob-lib+fastJson

Maven引入jar:

       <dependency>

         <groupId>net.sf.json-libgroupId>

         <artifactId>json-libartifactId>

         <version>2.4version>

         <classifier>jdk15classifier>

      dependency>

 

json嵌套数据处理(fastJson,json-lib,jackJson)_第5张图片

第二种:jackson单独处理

      

json嵌套数据处理(fastJson,json-lib,jackJson)_第6张图片

 

第三种:fastJson单独处理

       json嵌套数据处理(fastJson,json-lib,jackJson)_第7张图片

接上图 

      测试中的耗时并不严谨,数据也不够多。对于这三者的性能效率,无法得出很肯定的高低。但是以本人的测试,fastJson不愧是fast,测试的六组数据,用时均都在200毫秒以内。第一种方法更第二种方法分别是330-434ms、210-282ms之间。

      至于Gson,本人比较懒,并没有继续搞了。听闻如果对程序性能要较大的要求,可以gson和faseJson混合使用。

      使用Gson将bean转换json确保数据的正确,使用FastJson将Json转换Bean。这样貌似可以达到最优性能和数据转换的准确性。

 

你可能感兴趣的:(json嵌套数据处理(fastJson,json-lib,jackJson))