zoukankan      html  css  js  c++  java
  • Android--将实体类转化成Json和Map的基类

    package com.newair.talk.base;
    
    import android.text.TextUtils;
    
    
    import com.google.gson.Gson;
    
    import java.lang.reflect.Field;
    import java.util.Collections;
    import java.util.HashMap;
    import java.util.Map;
    
    /**
     * 公共请求
     */
    public class BaseRequest {
        /**
         * 将实体类转换成请求参数,json字符串形式返回
         *
         * @return
         */
        public String getJsonParams() {
            String jsonStr = new Gson().toJson(this);
            if (TextUtils.isEmpty(jsonStr)) {
                jsonStr = "";
            }
    
            return jsonStr;
        }
    
        /**
         * 将实体类转换成请求参数,以map<k,v>形式返回
         *
         * @return
         */
        public Map<String, String> getMapParams() {
            Class<? extends BaseRequest> clazz = this.getClass();
            Class<? extends Object> superclass = clazz.getSuperclass();
    
            Field[] fields = clazz.getDeclaredFields();
            Field[] superFields = superclass.getDeclaredFields();
    
            if (fields == null || fields.length == 0) {
                return Collections.emptyMap();
            }
    
            Map<String, String> params = new HashMap<String, String>();
            try {
                for (Field field : fields) {
                    field.setAccessible(true);
                    params.put(field.getName(), String.valueOf(field.get(this)));
                }
    
                for (Field superField : superFields) {
                    superField.setAccessible(true);
                    params.put(superField.getName(), String.valueOf(superField.get(this)));
                }
    
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            } catch (IllegalArgumentException e) {
                e.printStackTrace();
            }
    
            return params;
        }
    }
  • 相关阅读:
    navicat安装与激活
    MySQL 安装
    oracle中not in 和 in 的替代写法
    oracle中in和exists的区别
    oracle中nvarchar2()和varchar2()的区别
    oracle稳定执行计划(更改)的方法
    oracle显示转化字段类型
    oracle中varchar2(2)存不了一个汉字的原因
    oracle中索引快速全扫描和索引全扫描的区别
    oracle常见的执行计划
  • 原文地址:https://www.cnblogs.com/819158327fan/p/5484816.html
Copyright © 2011-2022 走看看