国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

JAVA && JSON

2019-11-15 00:41:48
字體:
來源:轉載
供稿:網友
java && JSON

public static String object2json(Object obj) {StringBuilder json = new StringBuilder();if (obj == null) {json.append("/"/"");} else if (obj instanceof String || obj instanceof Integer|| obj instanceof Float || obj instanceof Boolean|| obj instanceof Short || obj instanceof Double|| obj instanceof Long || obj instanceof BigDecimal|| obj instanceof BigInteger || obj instanceof Byte) {json.append("/"").append(string2json(obj.toString())).append("/"");} else if (obj instanceof Object[]) {json.append(array2json((Object[]) obj));} else if (obj instanceof List) {json.append(list2json((List<?>) obj));} else if (obj instanceof Map) {json.append(map2json((Map<?, ?>) obj));} else if (obj instanceof Set) {json.append(set2json((Set<?>) obj));} else {json.append(bean2json(obj));}return json.toString();}

public static String bean2json(Object bean) {StringBuilder json = new StringBuilder();json.append("{");PRopertyDescriptor[] props = null;try {props = Introspector.getBeanInfo(bean.getClass(), Object.class).getPropertyDescriptors();} catch (IntrospectionException e) {}if (props != null) {for (int i = 0; i < props.length; i++) {try {String name = object2json(props[i].getName());String value = object2json(props[i].getReadMethod().invoke(bean));json.append(name);json.append(":");json.append(value);json.append(",");} catch (Exception e) { logger.error("Exception raised-------->",e);}}json.setCharAt(json.length() - 1, '}');} else {json.append("}");}return json.toString();}

public static String list2json(List<?> list) {StringBuilder json = new StringBuilder();json.append("[");if (list != null && list.size() > 0) {for (Object obj : list) {json.append(object2json(obj));json.append(",");}json.setCharAt(json.length() - 1, ']');} else {json.append("]");}return json.toString();}

public static String array2json(Object[] array) {StringBuilder json = new StringBuilder();json.append("[");if (array != null && array.length > 0) {for (Object obj : array) {json.append(object2json(obj));json.append(",");}json.setCharAt(json.length() - 1, ']');} else {json.append("]");}return json.toString();}

public static String map2json(Map<?, ?> map) {StringBuilder json = new StringBuilder();json.append("{");if (map != null && map.size() > 0) {for (Object key : map.keySet()) {json.append(object2json(key));json.append(":");json.append(object2json(map.get(key)));json.append(",");}json.setCharAt(json.length() - 1, '}');} else {json.append("}");}return json.toString();}

public static String set2json(Set<?> set) {StringBuilder json = new StringBuilder();json.append("[");if (set != null && set.size() > 0) {for (Object obj : set) {json.append(object2json(obj));json.append(",");}json.setCharAt(json.length() - 1, ']');} else {json.append("]");}return json.toString();}

public static String string2json(String s) {if (s == null)return "";StringBuilder sb = new StringBuilder();for (int i = 0; i < s.length(); i++) {char ch = s.charAt(i);switch (ch) {case '"':sb.append("http:///"");break;case '//':sb.append("http:////");break;case '/b':sb.append("http://b");break;case '/f':sb.append("http://f");break;case '/n':sb.append("http://n");break;case '/r':sb.append("http://r");break;case '/t':sb.append("http://t");break;case '/':sb.append("http:///");break;default:if (ch >= '/u0000' && ch <= '/u001F') {String ss = Integer.toHexString(ch);sb.append("http://u");for (int k = 0; k < 4 - ss.length(); k++) {sb.append('0');}sb.append(ss.toUpperCase());} else {sb.append(ch);}}}return sb.toString();}

/*************************************************************************** * 將對象序列化為JSON文本 * * @param object * @return */public static String toJSONString(Object object) {JSONArray jsonArray = JSONArray.fromObject(object);

return jsonArray.toString();}

/*************************************************************************** * 將JSON對象數組序列化為JSON文本 * * @param jsonArray * @return */public static String toJSONString(JSONArray jsonArray) {return jsonArray.toString();}

/*************************************************************************** * 將JSON對象序列化為JSON文本 * * @param jsonObject * @return */public static String toJSONString(JSONObject jsonObject) {return jsonObject.toString();}

/*************************************************************************** * 將對象轉換為List對象 * * @param object * @return */public static List toArrayList(Object object) {List arrayList = new ArrayList();

JSONArray jsonArray = JSONArray.fromObject(object);Iterator it = jsonArray.iterator();while (it.hasNext()) {JSONObject jsonObject = (JSONObject) it.next();

Iterator keys = jsonObject.keys();while (keys.hasNext()) {Object key = keys.next();Object value = jsonObject.get(key);arrayList.add(value);}}

return arrayList;}

/*************************************************************************** * 將對象轉換為JSON對象數組 * * @param object * @return */public static JSONArray toJSONArray(Object object) {return JSONArray.fromObject(object);}

/*************************************************************************** * 將對象轉換為JSON對象 * * @param object * @return */public static JSONObject toJSONObject(Object object) {return JSONObject.fromObject(object);}

/*************************************************************************** * 將對象轉換為HashMap * * @param object * @return */public static HashMap toHashMap(Object object) {HashMap<String, Object> data = new HashMap<String, Object>();JSONObject jsonObject = toJSONObject(object);Iterator it = jsonObject.keys();while (it.hasNext()) {String key = String.valueOf(it.next());Object value = jsonObject.get(key);data.put(key, value);}

return data;}

public static TreeMap toTreeMap(Object object) {TreeMap<String, Object> data = new TreeMap<String, Object>();JSONObject jsonObject = toJSONObject(object);Iterator it = jsonObject.keys();while (it.hasNext()) {String key = String.valueOf(it.next());Object value = jsonObject.get(key);data.put(key, value);}return data;}public static LinkedHashMap toLinkedHashMap(Object object) {LinkedHashMap<String, Object> data = new LinkedHashMap<String, Object>();JSONObject jsonObject = toJSONObject(object);Iterator it = jsonObject.keys();while (it.hasNext()) {String key = String.valueOf(it.next());Object value = jsonObject.get(key);data.put(key, value);}return data;}/*************************************************************************** * 將對象轉換為List<Map<String,Object>> * * @param object * @return */// 返回非實體類型(Map<String,Object>)的Listpublic static List<Map<String, Object>> toList(Object object) {List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();JSONArray jsonArray = JSONArray.fromObject(object);for (Object obj : jsonArray) {JSONObject jsonObject = (JSONObject) obj;Map<String, Object> map = new HashMap<String, Object>();Iterator it = jsonObject.keys();while (it.hasNext()) {String key = (String) it.next();Object value = jsonObject.get(key);map.put((String) key, value);}list.add(map);}return list;}

/*************************************************************************** * 將JSON對象數組轉換為傳入類型的List * * @param <T> * @param jsonArray * @param objectClass * @return */public static <T> List<T> toList(JSONArray jsonArray, Class<T> objectClass) {return JSONArray.toList(jsonArray, objectClass);}

/*************************************************************************** * 將對象轉換為傳入類型的List * * @param <T> * @param * @param objectClass * @return */public static <T> List<T> toList(Object object, Class<T> objectClass) {JSONArray jsonArray = JSONArray.fromObject(object);

return JSONArray.toList(jsonArray, objectClass);}

/*************************************************************************** * 將JSON對象轉換為傳入類型的對象 * * @param <T> * @param jsonObject * @param beanClass * @return */public static <T> T toBean(JSONObject jsonObject, Class<T> beanClass) {return (T) JSONObject.toBean(jsonObject, beanClass);}

/*************************************************************************** * 將將對象轉換為傳入類型的對象 * * @param <T> * @param object * @param beanClass * @return */public static <T> T toBean(Object object, Class<T> beanClass) {JSONObject jsonObject = JSONObject.fromObject(object);

return (T) JSONObject.toBean(jsonObject, beanClass);}

/*************************************************************************** * 將JSON文本反序列化為主從關系的實體 * * @param <T> * 泛型T 代表主實體類型 * @param <D> * 泛型D 代表從實體類型 * @param jsonString * JSON文本 * @param mainClass * 主實體類型 * @param detailName * 從實體類在主實體類中的屬性名稱 * @param detailClass * 從實體類型 * @return */public static <T, D> T toBean(String jsonString, Class<T> mainClass,String detailName, Class<D> detailClass) {JSONObject jsonObject = JSONObject.fromObject(jsonString);JSONArray jsonArray = (JSONArray) jsonObject.get(detailName);

T mainEntity = toBean(jsonObject, mainClass);List<D> detailList = toList(jsonArray, detailClass);

try {BeanUtils.setProperty(mainEntity, detailName, detailList);} catch (Exception ex) {throw new RuntimeException("主從關系JSON反序列化實體失敗!");}

return mainEntity;}

/*************************************************************************** * 將JSON文本反序列化為主從關系的實體 * * @param <T>泛型T * 代表主實體類型 * @param <D1>泛型D1 * 代表從實體類型 * @param <D2>泛型D2 * 代表從實體類型 * @param jsonString * JSON文本 * @param mainClass * 主實體類型 * @param detailName1 * 從實體類在主實體類中的屬性 * @param detailClass1 * 從實體類型 * @param detailName2 * 從實體類在主實體類中的屬性 * @param detailClass2 * 從實體類型 * @return */public static <T, D1, D2> T toBean(String jsonString, Class<T> mainClass,String detailName1, Class<D1> detailClass1, String detailName2,Class<D2> detailClass2) {JSONObject jsonObject = JSONObject.fromObject(jsonString);JSONArray jsonArray1 = (JSONArray) jsonObject.get(detailName1);JSONArray jsonArray2 = (JSONArray) jsonObject.get(detailName2);

T mainEntity = toBean(jsonObject, mainClass);List<D1> detailList1 = toList(jsonArray1, detailClass1);List<D2> detailList2 = toList(jsonArray2, detailClass2);

try {BeanUtils.setProperty(mainEntity, detailName1, detailList1);BeanUtils.setProperty(mainEntity, detailName2, detailList2);} catch (Exception ex) {throw new RuntimeException("主從關系JSON反序列化實體失敗!");}

return mainEntity;}

/*************************************************************************** * 將JSON文本反序列化為主從關系的實體 * * @param <T>泛型T * 代表主實體類型 * @param <D1>泛型D1 * 代表從實體類型 * @param <D2>泛型D2 * 代表從實體類型 * @param jsonString * JSON文本 * @param mainClass * 主實體類型 * @param detailName1 * 從實體類在主實體類中的屬性 * @param detailClass1 * 從實體類型 * @param detailName2 * 從實體類在主實體類中的屬性 * @param detailClass2 * 從實體類型 * @param detailName3 * 從實體類在主實體類中的屬性 * @param detailClass3 * 從實體類型 * @return */public static <T, D1, D2, D3> T toBean(String jsonString,Class<T> mainClass, String detailName1, Class<D1> detailClass1,String detailName2, Class<D2> detailClass2, String detailName3,Class<D3> detailClass3) {JSONObject jsonObject = JSONObject.fromObject(jsonString);JSONArray jsonArray1 = (JSONArray) jsonObject.get(detailName1);JSONArray jsonArray2 = (JSONArray) jsonObject.get(detailName2);JSONArray jsonArray3 = (JSONArray) jsonObject.get(detailName3);

T mainEntity = toBean(jsonObject, mainClass);List<D1> detailList1 = toList(jsonArray1, detailClass1);List<D2> detailList2 = toList(jsonArray2, detailClass2);List<D3> detailList3 = toList(jsonArray3, detailClass3);

try {BeanUtils.setProperty(mainEntity, detailName1, detailList1);BeanUtils.setProperty(mainEntity, detailName2, detailList2);BeanUtils.setProperty(mainEntity, detailName3, detailList3);} catch (Exception ex) {throw new RuntimeException("主從關系JSON反序列化實體失敗!");}

return mainEntity;}

/*************************************************************************** * 將JSON文本反序列化為主從關系的實體 * * @param <T> * 主實體類型 * @param jsonString * JSON文本 * @param mainClass * 主實體類型 * @param detailClass * 存放了多個從實體在主實體中屬性名稱和類型 * @return */public static <T> T toBean(String jsonString, Class<T> mainClass,HashMap<String, Class> detailClass) {JSONObject jsonObject = JSONObject.fromObject(jsonString);T mainEntity = toBean(jsonObject, mainClass);for (Object key : detailClass.keySet()) {try {Class value = (Class) detailClass.get(key);BeanUtils.setProperty(mainEntity, key.toString(), value);} catch (Exception ex) {throw new RuntimeException("主從關系JSON反序列化實體失敗!");}}return mainEntity;}public static String toxml(String reportName,List list){//new一個 StringBuilder 用來接收要傳遞的XML 值 StringBuilder strBder = new StringBuilder();PrintWriter writer = null;String resultName = null;String resultCount = null;strBder.append("<?xml version=/"1.0/" encoding=/"UTF-8/" ?> ");strBder.append("<graph caption=/""+reportName+"/" " +"showNames=/"1/" decimalPrecision=/"1/" numberFormatScale=/"1/" baseFontSize=/"14/"" +"formatNumber=/"1/" showValues=/"0/" >" );for(int i=0;i<list.size();i++){Map currMap = (Map)list.get(i);resultName = currMap.get("resultName").toString();resultCount = currMap.get("resultCount").toString();

strBder.append("<set name=/""+resultName+"/" value=/""+resultCount+"/" />");}strBder.append("</graph>");return strBder.toString();}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宁都县| 日土县| 宁阳县| 新乐市| 孟津县| 泰兴市| 宁德市| 通江县| 商河县| 婺源县| 古田县| 青铜峡市| 岚皋县| 喀喇| 溧水县| 宁都县| 五峰| 科技| 中超| 永州市| 衡东县| 通辽市| 都匀市| 潞城市| 尖扎县| 海南省| 玉龙| 兴和县| 禹城市| 昌都县| 磴口县| 赞皇县| 公安县| 北辰区| 海淀区| 贺州市| 泽库县| 凤台县| 仙游县| 靖宇县| 静宁县|