除了用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; }