Android开发Android技术知识Android开发

一个非常 简洁 的 Json解析,,基于FastJson

2019-06-14  本文已影响35人  歇斯底里的苦笑

一直觉得java在Json解析上不够优雅,不够简洁。传统的JSONObject的解析,真的,解析个东西简直要疯掉。
后面出了个FastJson跟Gson,虽然很好用,但是有时候也是很烦,
比如:我要解析一个很深沉的字符串。其他字符串我不要。



如上图:我要解析title里面的文字,其他不需要,【当然里,只需要一个一个字段,其他不需要 这种需求是真的少见】
如果我们使用FastJson跟Gson第一步肯定要先建一个类,然后json转化成实体类
然后取的时候还要一直get ,取名字取短的话还好,要是名字很长,看起来真心难受。

bean.getBody().getData().get(0).getTitle()

这种情况下,我们就需要用到一个简洁的解析 如:

 String title = JsonUtils.parse(json,String.class,"body","data",0,"title");

使用这种方式的话,我们不需要创建类,也不担心你json串是否符合你要的字段,哪层字段没有,就直接返回 “”,
\color{red}{支持常用类型,跟实体类类型}

当然咯,转换实体类还是非常还好用的,我们要转换某层下面的实体类也非常方便,只需要改第二个参数为实体类类型就即可,下面给一个全部的实例:

 // 1、解析body -> data -> 0
 String data_0 = JsonUtils.parse(json,String.class,"body","data",0);
 System.out.println("data -> 0: " + data_0);

 // 2、解析body -> data -> 0 -> title
 String title = JsonUtils.parse(json,String.class,"body","data",0,"title");
 System.out.println("title: " + title);

 // 3、解析body -> data -> 0  转化为实体类
 DataBean data = JsonUtils.parse(json, DataBean.class,"body","data",0);
 //用DataBean去取title 看是否正确
 System.out.println("DataBean -> title: " + data.getTitle());

  // 4、直接将整串json转换为实体类
 Bean bean = JsonUtils.parse(json, Bean.class);
 //用Bean去取title 看是否正确
 System.out.println("Bean -> title: " + bean.getBody().getData().get(0).getTitle());

 // 5、实体类转换为json,用的是FastJson的用法
 String jsonStr = JsonUtils.toString(bean);
 System.out.println(jsonStr);

使用gradle添加依赖

compile 'com.yanxuwen:json:1.0.0'

使用pom添加依赖

<dependency>
    <groupId>com.yanxuwen</groupId>
    <artifactId>json</artifactId>
    <version>1.0.0</version>
</dependency>

github 点击跳转

如果你喜欢就去 github 帮我star下,非常感谢o(∩_∩)o~~~

上一篇下一篇

猜你喜欢

热点阅读