美文网首页
Android Fast Json 简单使用

Android Fast Json 简单使用

作者: Perston | 来源:发表于2020-05-19 19:38 被阅读0次

    1.Gradle依赖
    2.Json转HashMap 例子
    3.Json转实体类 例子

    1.Gradle依赖

        //fastjson解析
        api 'com.alibaba:fastjson:1.2.59'
    

    2.Json转HashMap 例子

    • destination.json放在assets目录中


      image.png
    • destination.json

    {
      "main/tabs/sofa": {
        "isFragment": true,
        "asStarter": false,
        "needLogin": false,
        "pageUrl": "main/tabs/sofa",
        "className": "com.mooc.ppjoke.ui.sofa.SofaFragment",
        "id": 147242568
      }
    }
    
    • 通过GsonFormat转Java类
    public class Destination {
        public String pageUrl;
        public int id;
        public boolean needLogin;
        public boolean asStarter;
        public boolean isFragment;
        public String className;
    }
    
    • AppConfig.java
    public class AppConfig {
        private static HashMap<String, Destination> sDestConfig;
        public static HashMap<String, Destination> getDestConfig() {
            if (sDestConfig == null) {
                String content = parseFile("destination.json");
                sDestConfig = JSON.parseObject(content, new TypeReference<HashMap<String, Destination>>() {
                });
            }
            return sDestConfig;
        }
    
        private static String parseFile(String fileName) {
            AssetManager assets = AppGlobals.getApplication().getAssets();
            InputStream is = null;
            BufferedReader br = null;
            StringBuilder builder = new StringBuilder();
            try {
                is = assets.open(fileName);
                br = new BufferedReader(new InputStreamReader(is));
                String line = null;
                while ((line = br.readLine()) != null) {
                    builder.append(line);
                }
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                try {
                    if (is != null) {
                        is.close();
                    }
                    if (br != null) {
                        br.close();
                    }
                } catch (Exception e) {
    
                }
            }
    
            return builder.toString();
        }
    }
    
    • AppGlobals.java
    public class AppGlobals {
        private static Application sApplication;
    
        public static Application getApplication() {
            if (sApplication == null) {
                try {
                    sApplication = (Application) Class.forName("android.app.ActivityThread")
                            .getMethod("currentApplication")
                            .invoke(null, (Object[]) null);
                } catch (IllegalAccessException e) {
                    e.printStackTrace();
                } catch (InvocationTargetException e) {
                    e.printStackTrace();
                } catch (NoSuchMethodException e) {
                    e.printStackTrace();
                } catch (ClassNotFoundException e) {
                    e.printStackTrace();
                }
            }
            return sApplication;
        }
    }
    

    3.Json转实体类 例子

    • main_tabs_config.json放在assets中


      image.png
    • main_tabs_config.json

    {
      "activeColor": "#333333",
      "inActiveColor": "#666666",
      "selectTab": 0,
      "tabs": [
        {
          "size": 24,
          "enable": true,
          "index": 0,
          "pageUrl": "main/tabs/home",
          "title": "首页"
        },
        {
          "size": 24,
          "enable": true,
          "index": 1,
          "pageUrl": "main/tabs/sofa",
          "title": "沙发"
        }
      ]
    }
    
    • 通过GsonFormat转Java类
    public class BottomBar {
    
        /**
         * activeColor : #333333
         * inActiveColor : #666666
         * tabs : [{"size":24,"enable":true,"index":0,"pageUrl":"main/tabs/home","title":"首页"},{"size":24,"enable":true,"index":1,"pageUrl":"main/tabs/sofa","title":"沙发"},{"size":40,"enable":true,"index":2,"tintColor":"#ff678f","pageUrl":"main/tabs/publish","title":""},{"size":24,"enable":true,"index":3,"pageUrl":"main/tabs/find","title":"发现"},{"size":24,"enable":true,"index":4,"pageUrl":"main/tabs/my","title":"我的"}]
         */
    
        public String activeColor;
        public String inActiveColor;
        public List<Tab> tabs;
        public int selectTab;//底部导航栏默认选中项
    
        public static class Tab {
            /**
             * size : 24
             * enable : true
             * index : 0
             * pageUrl : main/tabs/home
             * title : 首页
             * tintColor : #ff678f
             */
    
            public int size;
            public boolean enable;
            public int index;
            public String pageUrl;
            public String title;
            public String tintColor;
        }
    }
    
    • AppConfig.java
    
    public class AppConfig {
        private static BottomBar sBottomBar;
        public static BottomBar getBottomBarConfig() {
            if (sBottomBar == null) {
                String content = parseFile("main_tabs_config.json");
                sBottomBar = JSON.parseObject(content, BottomBar.class);
            }
            return sBottomBar;
        }
        private static String parseFile(String fileName) {
            AssetManager assets = AppGlobals.getApplication().getAssets();
            InputStream is = null;
            BufferedReader br = null;
            StringBuilder builder = new StringBuilder();
            try {
                is = assets.open(fileName);
                br = new BufferedReader(new InputStreamReader(is));
                String line = null;
                while ((line = br.readLine()) != null) {
                    builder.append(line);
                }
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                try {
                    if (is != null) {
                        is.close();
                    }
                    if (br != null) {
                        br.close();
                    }
                } catch (Exception e) {
    
                }
            }
    
            return builder.toString();
        }
    }
    

    相关文章

      网友评论

          本文标题:Android Fast Json 简单使用

          本文链接:https://www.haomeiwen.com/subject/pcliohtx.html