美文网首页
Android Json转对象本地快速测试

Android Json转对象本地快速测试

作者: hai_phon | 来源:发表于2019-03-20 16:25 被阅读0次

    应用场景:

    后台提供了服务接口,并有json数据demo,但是可能功能还没实现,这时候Android已经完成了功能,就等测试接口时可以用这个方法进行本地快速测试。 
    

    例如给出了这样的json数据:

    // json数据
    {
      "list": [
        {
          "year": "string",
          "month": "string",
          "orders": 0,
          "total_sales": "string",
          "collected": "string",
          "rate": "string",
          "increase": 0
        }
      ]
    }
    
    1.拷贝这段json数据,通过GsonFormat插件生成Bean,不懂的看这里GsonFormat使用
    2.将Json字符串保存到格式为.json的文本中,文件名可以任意取,建议和数据Bean的名字保持一致,重点是下面调用的时候用这个名字就可以,保存到asset文件夹,没有这个文件夹的手动新建。
    image.png
    3.将Json转Bean对象,调用下面方法。
    private void getTestBannerData() {
            String json = JsonUtil.getAsstesJson(mContext, "banner.json");
            BannerBean banner = JsonUtil.fromJson(json, BannerBean.class);
            initBanner(banner);
        }
    

    JsonUtil.java

    package com.dasudian.dsd.utils.string;
    
    import android.content.Context;
    import android.content.res.AssetManager;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.lang.reflect.Type;
    
    import com.google.gson.Gson;
    /**
     * JsonUtil工具类代码:
     * 注意先再build配置implementation 'com.google.code.gson:gson:2.8.5'
     */
    public class JsonUtil {
    
        private JsonUtil(){}
    
        /**
         * 对象转换成json字符串
         * @param obj 
         * @return 
         */
        public static String toJson(Object obj){
            
            Gson gson = new Gson();
            
            return gson.toJson(obj);
        }
        
        /**
         * json字符串转成对象
         * @param str  
         * @param type
         * @return 
         */
        public static <T> T fromJson(String str, Type type) {
            Gson gson = new Gson();
            return gson.fromJson(str, type);
        }
    
        /**
         * json字符串转成对象
         * @param str  
         * @param type 
         * @return 
         */
        public static <T> T fromJson(String str, Class<T> type) {
            Gson gson = new Gson();
            return gson.fromJson(str, type);
        }
    
        /**
         * 得到json文件中的内容
         * @param context
         * @param fileName
         * @return
         */
        public static String getAsstesJson(Context context, String fileName){
            StringBuilder stringBuilder = new StringBuilder();
            //获得assets资源管理器
            AssetManager assetManager = context.getAssets();
            //使用IO流读取json文件内容
            try {
                BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(
                        assetManager.open(fileName),"utf-8"));
                String line;
                while ((line = bufferedReader.readLine()) != null) {
                    stringBuilder.append(line.trim());
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
            return stringBuilder.toString();
        }
    }
    

    依赖Gson库

      dependencies {
          ...
          implementation 'com.google.code.gson:gson:2.8.5'
          ...
      }
    

    相关文章

      网友评论

          本文标题:Android Json转对象本地快速测试

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