Android--将实体类转化成Json和Map的基类
2016-05-12 10:53
459 查看
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; } }
相关文章推荐
- Android - 安装应用(APP) 不显示图标
- android studio设置debug使用正式签名
- 9. Android框架和工具之 SlidingMenu(抽屉菜单)
- [Android Tips] 18. Enable/Disable WiFi via adb
- Android调用系统关机指令
- Android TextView中文字通过SpannableString来设置超链接、颜色、字体等属性
- SoundPool播放音频资源
- RXBinding 绑定View
- android 左边框圆角的实现
- Github上托管的最实用六大Android开源框架整理
- android studio编译.so文件
- Android studio ndk 编译
- border-radius在Android下的几个BUG
- android常用的一些UI调试命令am,pm
- android国际化(多语言)
- Android中的xml、json格式数据解析
- android中的各种权限
- Android fill_parent、wrap_content和match_parent的区别
- android布局相关属性
- android SDK国内镜像