GSON解译Json为DTO
除了用okhttp网络库外,还用到google的gson库。
1. uti类的对象一般都用懒汉模式。这次gson也是用懒汉模式。
public class GsonTools { private static Gson gson; // 饿汉式
public static GsonTools gsonTools = new GsonTools(); public GsonTools() {} public static GsonTools getInstance(){
return gsonTools;
} }
2. GSON库有两种方法,叁返分别是List合集和String。
如果是返回多於一个Array,服务器的响应是这样。
[
{"Name": "ChenKuang",
"Age": "23",
"Position" : "Full stack developer"}
,
{"Name": "黑大猫",
"Age": "23",
"Position" : "数字媒体设计师"}
]
如果只是返回一个Array,服务器的响应是这样。
{"Name": "ChenKuang",
"Age": "23",
"Position" : "Full stack developer"}
3. 所以对应GSON解释也有2种不同的写法。
如果是把多於一个Array的Json,解译成一个List<DTO>的集合,应用以下写法。
/*
* @param [String]json
* @return [List<PostDTP>]postDTOs
*/
public <T> List<T> getPost (String jsonString) {
gson = new Gson();
List<T> list = gson.fromJson(jsonString, new TypeToken<List<PostDTO>>() {}.getType());
return list;
}
如果是把一个Array的Json,解译成一个DTO,应用以下写法。
/*
* @param [String]json
* @return [ResultDTO]resultDTO
*/
public ResultDTO getLogin (String jsonString) {
gson = new Gson();
ResultDTO resultDTO = gson.fromJson(jsonString, ResultDTO.class);
return resultDTO;
}
GSON解译Json为DTO的更多相关文章
- Gson解析json繁杂数据
碰到json数据.里面格式众多.list+string[]+等等.具体json参数如下: eg:以下为接口参数: "responseData":{ "brandCode& ...
- 使用Gson解析json
前边的博客说过将json解析成java的方法,使用的是 这几个jar包,但是在解析时层遇到一个问题,就是在将时间字符串转换为java的Timestamp对象时会抛出异常,这个问题一直放在哪里没有去解决 ...
- 大话JSON之Gson解析JSON
(三)解析Json数组(多条Json数据) 比如有如下Json数据: [{'name':'John', 'grade':[{'course':'English','score':100},{'cour ...
- Gson操作json
github:https://github.com/google/gson API:http://google.github.io/gson/apidocs/ 示例对象 package present ...
- Android中使用Gson解析JSON数据的两种方法
Json是一种类似于XML的通用数据交换格式,具有比XML更高的传输效率;本文将介绍两种方法解析JSON数据,需要的朋友可以参考下 Json是一种类似于XML的通用数据交换格式,具有比XML更高的 ...
- Gson解析json数据
1.解析单个对象 JSON字符串如下 [ { "formatDate":"2015-10-28", "date":"2015\u5 ...
- 表现层的设计(一)——常用的模式、Json与DTO
上几篇博文介绍了 业务逻辑层和数据访问层,我认为写博文的作用主要是向业界的读者交流一种思想,点到为止,至于学习架构设计,通过几篇博文是讲不清楚的,还需要[基础]扎实的情况下,[反复]研究[权威]的书籍 ...
- Android网络之数据解析----使用Google Gson解析Json数据
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- JSON和GSON操作json数据
1,JSON操作json import net.sf.json.JSONArray; import net.sf.json.JSONObject; //json操作数据 public static S ...
随机推荐
- 吴裕雄--天生自然Django框架开发笔记:Django 模板
使用 django.http.HttpResponse() 来输出 "Hello World!".该方式将数据与视图混合在一起,不符合 Django 的 MVC 思想. Djang ...
- 洛谷 P1220 关路灯(区间dp,前缀和)
传送门 解题思路 先明确一下题意,c指的是路灯的编号而不是位置. 然后根据贪心,在从点i去关点j的路灯时,所有经过的路灯都会随手关掉(不耗时间),所以我们可以确定,若i点和j点的路灯已经关闭,那么区间 ...
- SpringMVC:提交参数名与接收参数名问题
1.提交的域名称和处理方法的参数名一致 提交数据 : http://localhost:8080/hello?name=111 处理方法 : @RequestMapping("/hello& ...
- HDU - 1068 Girls and Boys(二分匹配---最大独立集)
题意:给出每个学生的标号及与其有缘分成为情侣的人的标号,求一个最大集合,集合中任意两个人都没有缘分成为情侣. 分析: 1.若两人有缘分,则可以连一条边,本题是求一个最大集合,集合中任意两点都不相连,即 ...
- SpringCloud学习之Ribbon使用(四)
1.关于 Ribbon Spring Cloud Ribbon 是基于 Netflix Ribbon 实现的一套客户端负载均衡的工具.Ribbon 是 Netflix 发布的开源项目,主要功能是提供客 ...
- webapi 传入参数校验
/// <summary> /// 传入参数校验过滤器 /// </summary> public class ValidateReqModelFilter : ActionF ...
- MySQL的优化与执行
MySQL会解析查询,并创建内部数据结构(解析树),然后对其进行各种优化,包括重写查询.决定表的读取顺序,以及选择合适的索引等.用户可以通过特殊的关键字提示(hint)优化器,影响它的决策过程.也可以 ...
- Java线程——线程之间的数据共享
在 Java 传统线程机制中的共享数据方式,大致可以简单分两种情况: ➢ 多个线程行为一致,共同操作一个数据源.也就是每个线程执行的代码相同,可以使用同一个 Runnable 对象,这个 Runn ...
- NOIp2018解题报告
D1: T1 \(Ans = \sum_{i=2}^{n} |a_{i}-a_{i-1}|\),正确性可由贪心证得 T2 考虑贪心,选出一个属于A的集合,容易证明其是最优的 然后考虑一个数如果不被选, ...
- IDEA忽略文件,防止git提交不想提交的文件
IDEA忽略文件,防止git提交不想提交的文件 方法一(只对没有add到仓库的文件有效): 方法二(只对没有add到仓库的文件有效): 在IDEA中安装.ignore插件.创建好了之后: 安装.git ...