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 ...
随机推荐
- python刷LeetCode:14. 最长公共前缀
难度等级:简单 题目描述: 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower",& ...
- UVA - 1629 Cake slicing(切蛋糕)(dp---记忆化搜索)
题意:有一个n行m列(1<=n, m<=20)的网格蛋糕上有一些樱桃.每次可以用一刀沿着网格线把蛋糕切成两块,并且只能够直切不能拐弯.要求最后每一块蛋糕上恰好有一个樱桃,且切割线总长度最小 ...
- Palette 的使用
Palette有什么用? Palette主要功能就是可以从图片中提取各种与颜色有关的元素.通过使用 Palette ,我们可以很轻松的实现界面风格的统一. Palette的使用很简单,首先你可以从gi ...
- Python笔记_第五篇_Python数据分析基础教程_NumPy基础
1. NumPy的基础使用涵盖如下内容: 数据类型 数组类型 类型转换 创建数组 数组索引 数组切片 改变维度 2. NumPy数组对象: NumPy中的ndarray是一个多维数组对象,该兑现共有两 ...
- handler method 参数绑定常用注解
handler method 参数绑定常用的注解,我们根据他们处理的Request的不同内容部分分为四类: A.处理requet uri 部分(这里指uri template中variable,不含q ...
- LeetCode——155. 最小栈
设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈. push(x) -- 将元素 x 推入栈中. pop() -- 删除栈顶的元素. top() -- 获取栈顶元素. ...
- 题解 P2622 【关灯问题II】
题目 感觉大佬们的代码在读入上的处理比本蒟蒻优秀多了,于是,一个AFO蒟蒻弱弱地提出一下自己的看法 [分析] 首先,对于 \(n\) 那么小,肯定是状压啦 对于读入,本蒟蒻开了两个数组来储存每个按钮的 ...
- 因子分析和PCA总结
因子分析和PCA 定义 因子分析就是数据降维工具.从一组相关变量中删除冗余或重复,把相关的变量放在一个因子中,实在不相关的因子有可能被删掉.用一组较小的“派生”变量表示相关变量,这个派生就是新的因子. ...
- MySQL--主备相关命令
创建用户账号 GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO repl@'10.70.8.%' IDENTIFIED BY 'mysql'; ...
- h5-提升移动端的响应区域
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...