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

  if (test != null) {
JSONTokener jsonParser = new JSONTokener(test);
JSONObject data_jo = (JSONObject) jsonParser.nextValue();
String data_str = data_jo.getString("dateMap"); if(!data_str.equals("")){
JSONArray ry = (JSONArray) new JSONTokener(data_str)
.nextValue();
ArrayList<JSONObject> list = new ArrayList<JSONObject>(); /**遍历获取数据Bean*/
for(int i=0;i<ry.length();i++){
JSONObject jo = ry.getJSONObject(i); /**根据定义好的字段和服务器返回的字段去往对象中set*/
list.add(jo);
}
return list;
}else {
return null;
}
} else {
return null;
}

没错,解析服务器端传回来的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(),你喜欢就好。

Gson+GsonFormat+Postman简单粗暴解析json的更多相关文章

  1. Spring-MVC配置Gson做为Message Converter解析Json

    Spring-MVC配置Gson做为Message Converter解析Json 在学习Spring的时候看到可以使用@RequestBody 和@ResponseBody注解来是的Spring自动 ...

  2. Qt简单的解析Json数据例子(一)

    要解析的json的格式为: { "rootpath": "001", "usernum": 111, "childdep" ...

  3. 解析Json的谷歌官方方法Gson和阿里巴巴的fastJson方法。

    //测试单个json文本 public void testGsonTwo(){ String jsonStr = "{\"id\":100,\"name\&qu ...

  4. WP8解析JSON格式(使用Newtonsoft.Json包)

    DOTA2 WebAPI请求返回的格式有两种,一种是XML,一种是JSON,默认是返回JSON格式. 这里举一个简单的解析JSON格式的例子(更多JSON操作): { "response&q ...

  5. JavaWeb_(Jar)使用fastjson解析json和序列化对象

    菜鸟教程 传送门 JSON官网 传送门 fastjson插件下载 传送门 序列化[百度百科]:序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程.在序列化期间,对 ...

  6. 【Android进阶】Gson解析json字符串的简单应用

    在客户端与服务器之间进行数据传输,一般采用两种数据格式,一种是xml,一种是json.这两种数据交换形式各有千秋,比如使用json数据格式,数据量会比较小,传输速度快,放便解析,而采用xml数据格式, ...

  7. android 初步了解应用Gson 解析Json数据

    1,因为没有服务器返回数据,对于Tomcat又懒得去配,所以我直接把数据写死到app中 先写一个实体类,便于操作 /** * 实体类 */ public class Person { int id ; ...

  8. 使用Gson解析json

    前边的博客说过将json解析成java的方法,使用的是 这几个jar包,但是在解析时层遇到一个问题,就是在将时间字符串转换为java的Timestamp对象时会抛出异常,这个问题一直放在哪里没有去解决 ...

  9. Android中使用Gson解析JSON数据的两种方法

    Json是一种类似于XML的通用数据交换格式,具有比XML更高的传输效率;本文将介绍两种方法解析JSON数据,需要的朋友可以参考下   Json是一种类似于XML的通用数据交换格式,具有比XML更高的 ...

随机推荐

  1. AtCoder - 2565(思维+暴力)

    题意 https://vjudge.net/problem/AtCoder-2565 将一个H*W的矩形切成三份,每一次只能水平或者垂直切,问最大块的面积-最小快的面积 的最小值是多少. 思路 先枚举 ...

  2. Vysor

    官网:http://www.vysor.io/ Vysor用 PC远程控制投影安卓手机/平板工具 Vysor 是一个免费的google浏览器插件. 它可以让你在pc上控制你的Android手机.平板等 ...

  3. 修改Tooltip 文字提示 的背景色 箭头颜色

    3==>vue 鼠标右击<div @contextmenu.prevent="mouseRightClick">prevent是阻止鼠标的默认事件 4==> ...

  4. 【BZOJ2437】[Noi2011]兔兔与蛋蛋(博弈+二分图)

    传送门 题意: 给出一个\(n*m\)的棋盘,上面有若干个黑色棋子,若干个白色棋子,还有一个空格. 每次先手选择一个空格,将它与相邻的某个白色棋子交换:后手则选择一个空格,与相邻的某个黑色棋子交换. ...

  5. table表格属性

  6. 第九周周二总结&&第九周周三计划

    周二的主题提取使用LDA模型进行了简单的测试,效果还可以.主要是提取的分词的结果,LDA:随机生成文章各个主题比例,再根据各个主题随机生成词,词与词之间的顺序关系被彻底忽略了,这就是LDA眼中世间所有 ...

  7. 【oracle】查看表空间信息

    -- 数据库查询表空间使用情况SELECT Upper(F.TABLESPACE_NAME) "表空间名", D.TOT_GROOTTE_MB/1024 "表空间大小(G ...

  8. oracle用户管理, 授权与回收权限

    一. 用户管理参数, 0.删除用户: drop user 用户名 [cascade] 当我们删除用户时, 如改用户已创建过数据对象, 那么删除用户时必须加cascade参数, 用来同步删除 改用户的所 ...

  9. Paper | Fast image processing with fully-convolutional networks

    目录 故事 方法 实验 发表在2017年ICCV. 核心任务:加速图像处理算子(accelerate image processing operators). 核心方法:将算子处理前.后的图像,训练一 ...

  10. 修改kile工程名字(转)

    假设原来的工程文件名是first,要改成second1.在工程文件目录中,将first.uvopt和first.uvproj名字改成second.uvopt和second.uvproj.2.其他fir ...