zoukankan      html  css  js  c++  java
  • 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;
        }
  • 相关阅读:
    java.io.Serializable浅析
    SSH和SSM的区别
    [转]github详细教程
    GITHUB的使用
    常用端口-小结
    DNS的解析原理
    windows快捷键-小结
    ip地址0.0.0.0是什么意思
    windows插件框架下载地址
    redis和mongodb
  • 原文地址:https://www.cnblogs.com/chenkuang/p/8111286.html
Copyright © 2011-2022 走看看