Gson+GsonFormat+Postman简单粗暴解析json
现在有时候之前的项目需要返回来修改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的更多相关文章
- Spring-MVC配置Gson做为Message Converter解析Json
Spring-MVC配置Gson做为Message Converter解析Json 在学习Spring的时候看到可以使用@RequestBody 和@ResponseBody注解来是的Spring自动 ...
- Qt简单的解析Json数据例子(一)
要解析的json的格式为: { "rootpath": "001", "usernum": 111, "childdep" ...
- 解析Json的谷歌官方方法Gson和阿里巴巴的fastJson方法。
//测试单个json文本 public void testGsonTwo(){ String jsonStr = "{\"id\":100,\"name\&qu ...
- WP8解析JSON格式(使用Newtonsoft.Json包)
DOTA2 WebAPI请求返回的格式有两种,一种是XML,一种是JSON,默认是返回JSON格式. 这里举一个简单的解析JSON格式的例子(更多JSON操作): { "response&q ...
- JavaWeb_(Jar)使用fastjson解析json和序列化对象
菜鸟教程 传送门 JSON官网 传送门 fastjson插件下载 传送门 序列化[百度百科]:序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程.在序列化期间,对 ...
- 【Android进阶】Gson解析json字符串的简单应用
在客户端与服务器之间进行数据传输,一般采用两种数据格式,一种是xml,一种是json.这两种数据交换形式各有千秋,比如使用json数据格式,数据量会比较小,传输速度快,放便解析,而采用xml数据格式, ...
- android 初步了解应用Gson 解析Json数据
1,因为没有服务器返回数据,对于Tomcat又懒得去配,所以我直接把数据写死到app中 先写一个实体类,便于操作 /** * 实体类 */ public class Person { int id ; ...
- 使用Gson解析json
前边的博客说过将json解析成java的方法,使用的是 这几个jar包,但是在解析时层遇到一个问题,就是在将时间字符串转换为java的Timestamp对象时会抛出异常,这个问题一直放在哪里没有去解决 ...
- Android中使用Gson解析JSON数据的两种方法
Json是一种类似于XML的通用数据交换格式,具有比XML更高的传输效率;本文将介绍两种方法解析JSON数据,需要的朋友可以参考下 Json是一种类似于XML的通用数据交换格式,具有比XML更高的 ...
随机推荐
- SoapUI、Postman测试WebService
之前装了SoapUI,最近装了Postman,分别用它们测试了WebService,下面为用法. 测试的在线WebService(数据来源于中国气象局)Endpoint: http://www.web ...
- CentOS7设置开机自启动方式
方式一: # 在/etc/rc.d/rc.local文件中追加启动命令,该文件追加后,会随着机器自动后,自动运行文件中的命令 # vim /etc/rc.d/rc.local # 权限问题:在cent ...
- 02-Django项目创建
第一.Django项目创建 django-admin startproject 项目名 # 注意如果使用虚拟环境,创建应用必须先进入虚拟环境 进入项目目录,tree看项目结构(此时提示tree com ...
- 2.Python网络编程_TCP(简略版)
TCP监听套接字: 当新的客户端请求连接时,服务器端监听套接字收到消息,会分配一个新的套接字对应于客户端(新socket包括四部分:源IP.源端口号.目的IP.目的端口号)用于接收客户端的消息,仔细观 ...
- Jmeter之BeanShell
在Jmeter中各种分类组件中都有相应的BeanShell组件,这里简单的说明一下Beanshell的使用. 一.概念 BeanShell是一种符合Java语法的脚本语言,也有自己的一些特定语法 二. ...
- fiddler面试题
1.什么叫断点? Break Point:进行接口测试时,为了测试后端功能而设置的. 2.断点有哪些方式? Before Requests:在请求时,没有达到服务器之前设置断点. -- 全局断 ...
- LG1337 [JSOI2004]平衡点 / 吊打XXX 模拟退火
问题描述 LG1337 题解 模拟退火模板 记住概率公式: \(exp(\frac{dealt}{T}) \times rand \ge R_A^ND^M_AX\) zzk太欧了,我交了一版没过他来了 ...
- C# Windows服务创建安装卸载
一.创建Windows服务 使用VS创建一个新的windows服务应用程序 创建完成之后 二.相关配置 修改Service1名称为StartService(可以不改,自行选择) 添加安装程序并修改配置 ...
- linux字体,bashrc的问题的解决
0.查看文件 :set ff #查看文件类型 这里是fileformat=unix :set ff=dos 设置为dos模式, 也可以用 sed -i 's/$/\r/' :set ff=unix 设 ...
- C实现string字符串
在C中实现string字符串,使用typedef将string定义为char *. #include <stdio.h> #include <stdlib.h> #includ ...