packagecom.json;importjava.lang.reflect.Method;importjava.text.ParseException;importjava.util.HashMap;importjava.util.Iterator;importjava.util.Map;importorg.json.JSONException;importorg.json.JSONObject;/***
* 1:将JavaBean转换成Map、JSONObject
* 2:将Map转换成Javabean
* 3:将JSONObject转换成Map、Javabean
*
*@authorAlexia*/
public classJsonHelper {/*** 将Javabean转换为Map
*
*@paramjavaBean
* javaBean
*@returnMap对象*/
public staticMap toMap(Object javaBean) {
Map result= newHashMap();
Method[] methods=javaBean.getClass().getDeclaredMethods();for(Method method : methods) {try{if (method.getName().startsWith("get")) {
String field=method.getName();
field= field.substring(field.indexOf("get") + 3);
field= field.toLowerCase().charAt(0) + field.substring(1);
Object value= method.invoke(javaBean, (Object[]) null);
result.put(field,null == value ? "": value.toString());
}
}catch(Exception e) {
e.printStackTrace();
}
}returnresult;
}/*** 将Json对象转换成Map
*
*@paramjsonObject
* json对象
*@returnMap对象
*@throwsJSONException*/
public static Map toMap(String jsonString) throwsJSONException {
JSONObject jsonObject= newJSONObject(jsonString);
Map result= newHashMap();
Iterator iterator=jsonObject.keys();
String key= null;
String value= null;while(iterator.hasNext()) {
key=(String) iterator.next();
value=jsonObject.getString(key);
result.put(key, value);
}returnresult;
}/*** 将JavaBean转换成JSONObject(通过Map中转)
*
*@parambean
* javaBean
*@returnjson对象*/
public staticJSONObject toJSON(Object bean) {return newJSONObject(toMap(bean));
}/*** 将Map转换成Javabean
*
*@paramjavabean
* javaBean
*@paramdata
* Map数据*/
public staticObject toJavaBean(Object javabean, Map data) {
Method[] methods=javabean.getClass().getDeclaredMethods();for(Method method : methods) {try{if (method.getName().startsWith("set")) {
String field=method.getName();
field= field.substring(field.indexOf("set") + 3);
field= field.toLowerCase().charAt(0) + field.substring(1);
method.invoke(javabean,newObject[] {
data.get(field)
});
}
}catch(Exception e) {
}
}returnjavabean;
}/*** JSONObject到JavaBean
*
*@parambean
* javaBean
*@returnjson对象
*@throwsParseException
* json解析异常
*@throwsJSONException*/
public static voidtoJavaBean(Object javabean, String jsonString)throwsParseException, JSONException {
JSONObject jsonObject= newJSONObject(jsonString);
Map map=toMap(jsonObject.toString());
toJavaBean(javabean, map);
}
}