jsonobject返回map_JSONObject、JSONArray、Map、JavaBean的相互转换

package com.suning.crawler.util;

import net.sf.json.JSONObject;

import sun.security.util.Password;

import java.lang.reflect.Method;

import java.text.ParseException;

import java.util.HashMap;

import java.util.Iterator;

import java.util.Map;/**

* @Author: hoobey

* @Description:

* @Date: Created in 9:12 2018/1/6

* @Modified By:

* *转换器

* 1:将JavaBean 转换成Map、JSONObject

* 2:将JSONObject 转换成Map*/

public classBeanConverter {/**

* 将javaBean转换成Map

*

* @param javaBean javaBean

* @return Map对象*/

public static MapBeantoMap(Object javaBean) {

Map result = new HashMap();

Method[] methods=javaBean.getClass().getDeclaredMethods();for(Method method : methods) {try{if (method.getName().startsWith("get")) {

String field= method.getName();//getName getPassword

field = field.substring(field.indexOf("get") + 3);//Name Password

field = field.toLowerCase().charAt(0) + field.substring(1);//name password

Object value = method.invoke(javaBean, (Object[]) null);

result.put(field,null == value ? "": value.toString());

}

}catch(Exception e) {

}

}returnresult;

}/**

* 将json对象转换成Map

*

* @param jsonObject json对象

* @return Map对象*/@SuppressWarnings("unchecked")public static MapJsontoMap(JSONObject jsonObject) {

Map result = new HashMap();

Iterator iterator =jsonObject.keys();

String key= null;

String value= null;while(iterator.hasNext()) {

key=iterator.next();

value=jsonObject.getString(key);

result.put(key, value);

}returnresult;

}/**

* 将javaBean转换成JSONObject

*

* @param bean javaBean

* @return json对象*/

public staticJSONObject toJSON(Object bean) {return newJSONObject(BeantoMap(bean));

}/**

* 将map转换成Javabean

*

* @param javabean javaBean

* @param data map数据*/

public static Object toJavaBean(Object javabean, Mapdata) {

Method[] methods=javabean.getClass().getDeclaredMethods();for(Method method : methods) {try{if (method.getName().startsWith("set")) {

String field= method.getName(); //setName setPassword

field = field.substring(field.indexOf("set") + 3);//Name Password

field = field.toLowerCase().charAt(0) + field.substring(1);//name password

method.invoke(javabean, newObject[]

{

data.get(field)

});

}

}catch(Exception e) {

e.printStackTrace();

}

}returnjavabean;

}/**

* 将javaBean转换成JSONObject

*

* @param data javaBean

* @return json对象

* @throws ParseException json解析异常*/

public static voidtoJavaBean(Object javabean, String data) throws ParseException {

JSONObject jsonObject= newJSONObject(data);

Map datas =BeantoMap(jsonObject);

toJavaBean(javabean, datas);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值