[android开发] json格式 与javaBean, HashMap格式之间的转换, 网络请求时常用.

本文介绍了在Android开发中如何进行JSON格式数据与JavaBean、HashMap之间的转换,提供了作者自编的方法,详细阐述了网络请求时常用的数据处理技巧。
摘要由CSDN通过智能技术生成


这个是自己写的方法, 可能有点杂乱.


public class ConvertUtil {

	/**
	 * 把非空属性拷贝到新对象
	 * 
	 * @param from
	 * @param to
	 */
	public static void copyProperties(Object from, Object to) {
		try {
			Class<? extends Object> clazz = from.getClass();
			Field[] fields = clazz.getDeclaredFields();
			Object fromV;
			Object toV;
			// 遍历字段
			for (Field field : fields) {
				try {
					field.setAccessible(true);
					fromV = field.get(from);
					toV = field.get(to);

					if (toV instanceof String) {
						if (!TextUtils.isEmpty((String) fromV)) {
							field.set(to, fromV);
						}
					} else if (toV instanceof ArrayList) {
						ArrayList fromArr = (ArrayList) fromV;
						if (fromArr != null && fromArr.size() > 0) {
							field.set(to, fromArr);
						}
					} else {
						if (fromV != null) {
							field.set(to, fromV);
						}
					}

				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		} catch (Exception e) {
		}
	}

	/**
	 * json装为bean
	 * 
	 * @param json
	 * @param clazz
	 * @return
	 */
	public static <T> T json2Bean(JSONObject json, Class<T> clazz) {
		T obj = null;
		try {
			obj = newInstance(clazz);
			doJson2Bean(json, obj);
			return obj;
		} catch (Exception e) {
			e.printStackTrace();
			return obj;
		}
	}

	/**
	 * beanlist转为mapList
	 * 
	 * @param beanList
	 * @return
	 */
	public static <T> ArrayList<HashMap<String, Object>> beanList2mapList(ArrayList<T> beanList) {
		ArrayList<HashMap<String, Object>> mapList = new ArrayList<HashMap<String, Object>>();
		HashMap<String, Object> map;
		if (beanList != null) {
			for (T bean : beanList) {
				map = new HashMap<String, Object>();
				try {
					Field[] fields = bean.getClass().getDeclaredFields();
					Object value;
					// 遍历字段
					for (Field field : fields) {
						try {
							field.setAccessible(true);
							value = field.get(bean);
							if (value != null)
								map.put(field.getName(), value);
						} catch (Exception e
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值