Gson+GsonFormat+Postman简单粗暴解析json

现在有时候之前的项目需要返回来修改bug看到以下这段代码

 1  if (test != null) {
 2             JSONTokener jsonParser = new JSONTokener(test);
 3             JSONObject data_jo = (JSONObject) jsonParser.nextValue();
 4             String data_str = data_jo.getString("dateMap");
 5 
 6             if(!data_str.equals("")){
 7                 JSONArray ry = (JSONArray) new JSONTokener(data_str)
 8                         .nextValue();
 9                 ArrayList<JSONObject> list = new ArrayList<JSONObject>();
10 
11                 /**遍历获取数据Bean*/
12                 for(int i=0;i<ry.length();i++){
13                     JSONObject jo = ry.getJSONObject(i);
14 
15                     /**根据定义好的字段和服务器返回的字段去往对象中set*/
16                     list.add(jo);
17                 }
18                 return list;
19             }else {
20                 return null;
21             }
22         } else {
23             return null;
24         }

没错,解析服务器端传回来的json格式数据,是不是脑海中一万头草泥马在奔腾,我保证,这种低效率的日子一去不复返啦,Gson+GsonFormat+Postman让解析JSON变的更愉快啦。

先来说说GSON

维基百科说  Gson(又称Google Gson)是Google公司发布的一个开放源代码的Java库,主要用途为序列化Java对象为JSON字符串,或反序列化JSON字符串成Java对象,通俗易懂。

咱们往项目中添加Gson支持(IDE为AS)

点击File -> Project Structure 然后看下图:

接下来我们键入搜索Gson 待搜索结果出来后连续选择点击OK按钮

然后我们去gradler文件中找找

前边是添加Gson 的一种方法,其实咱么可以直接往grader文件中dependencies添加

    compile 'com.google.code.gson:gson:2.8.1'

说完Gson说说GsonFormat,经过以上步骤之后,我们就可以在代码中自由切换序列化Java对象和Json字符串啦,例如

或者

但是要是我们在接收服务器字符串之后对着它自己来创建对应的序列化Java对象,要是简单json字符串还行,还是复杂的呢,那效率就太低啦,所以我们需要Gsonformat

 点击File -> settings->plugins 搜索GsonFormat,然后重启AS即可,现在让我们测试一下,我们先create一个test.java

然后 鼠标右键->generate->GsonFormat,输入json字符串,点击ok即可

好啦,这时候我们的bean就搞定啦

 

到此一套流程下来相对于之前,效率已经大大提高啦,但是我们还可以更进一步,想想我们的数据从哪里来的,我们在Android 代码中打断点获取的?那岂不是要累死,一个接口打一次断点,后台开发人员提供的接口文档?要是开发周期短,没来的及提供呢?总不能等着吧,到时候咱们这边拖了进度,怪罪下来不还是咱得扛,这时候Postman就用的上场啦

Postman 是一款功能超级强大的用于发送 HTTP 请求的 Chrome 插件,我们先来看看怎么安装

打开Chrome,点击右上角"≡"-> 更多工具 -> 扩展程序,拉到最下面点击点击获取更多扩展程序

最后我们过来看看怎么使用

拿到上面结果之后,我们再新建一个Java序列化对象,然后GsonFormat,最后你爱gson.toJson()还是gson.FromJson(),你喜欢就好。

原文地址:https://www.cnblogs.com/bdsdkrb/p/7204912.html