好贷网好贷款

JsonUtilsExtension

发布时间:2016-12-3 12:47:14 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"JsonUtilsExtension",主要涉及到JsonUtilsExtension方面的内容,对于JsonUtilsExtension感兴趣的同学可以参考一下。

package com.boco.framework.common.util; import java.beans.BeanInfo; import java.beans.Introspector; import java.beans.PropertyDescriptor; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import net.sf.ezmorph.object.DateMorpher; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import net.sf.json.JsonConfig; import net.sf.json.util.JSONUtils; import net.sf.json.xml.XMLSerializer; public class JsonUtilsExtension { public static void main(String[] args) throws Exception { int a = 5; System.out.println("value is - " + ((a < 5) ? 9.0 : 8)); } /** * 将传进来的展示dto 组装成json 只能用于平板结构 * * @param beanClass * @return */ public static JSONObject transJson4SimpleDto(Object o) throws Exception { JSONObject json = new JSONObject(); BeanInfo bi = Introspector.getBeanInfo(o.getClass(), Object.class); PropertyDescriptor[] props = bi.getPropertyDescriptors(); json.accumulate("className", o.getClass().getSimpleName()); for (int i = 0; i < props.length; i++) { if (props[i].getReadMethod().invoke(o, null) == null) { json.accumulate(props[i].getName(), ""); } else { json.accumulate(props[i].getName(), props[i].getReadMethod() .invoke(o, null)); } } return json; } /** * 将XML转化成JSON对象 * * @param xml * @return * @throws Exception */ public static JSONObject transXML2Json(String xml) throws Exception { XMLSerializer serializer = new XMLSerializer(); JSONObject json = (JSONObject) serializer.read(xml); System.out.println(json); return json; } /** * 从一个JSON 对象字符格式中得到一个java对象,形如: {"id" : idValue, "name" : nameValue, * "aBean" : {"aBeanId" : aBeanIdValue, ...}} * * @param object * @param clazz * @return */ public static Object getDTO(String jsonString, Class clazz) { JSONObject jsonObject = null; try { setDataFormat2JAVA(); jsonObject = JSONObject.fromObject(jsonString); } catch (Exception e) { e.printStackTrace(); } return JSONObject.toBean(jsonObject, clazz); } /** * 从一个JSON 对象字符格式中得到一个java对象,其中beansList是一类的集合,形如: {"id" : idValue, "name" : * nameValue, "aBean" : {"aBeanId" : aBeanIdValue, ...}, beansList:[{}, {}, * ...]} * * @param jsonString * @param clazz * @param map * 集合属性的类型 (key : 集合属性名, value : 集合属性类型class) eg: ("beansList" : * Bean.class) * @return */ public static Object getDTO(String jsonString, Class clazz, Map map) { JSONObject jsonObject = null; try { setDataFormat2JAVA(); jsonObject = JSONObject.fromObject(jsonString); } catch (Exception e) { e.printStackTrace(); } return JSONObject.toBean(jsonObject, clazz, map); } /** * 从一个JSON数组得到一个java对象数组,形如: [{"id" : idValue, "name" : nameValue}, {"id" : * idValue, "name" : nameValue}, ...] * * @param object * @param clazz * @return */ public static Object[] getDTOArray(String jsonString, Class clazz) { setDataFormat2JAVA(); JSONArray array = JSONArray.fromObject(jsonString); Object[] obj = new Object[array.size()]; for (int i = 0; i < array.size(); i++) { JSONObject jsonObject = array.getJSONObject(i); obj[i] = JSONObject.toBean(jsonObject, clazz); } return obj; } /** * 从一个JSON数组得到一个java对象数组,形如: [{"id" : idValue, "name" : nameValue}, {"id" : * idValue, "name" : nameValue}, ...] * * @param object * @param clazz * @param map * @return */ public static Object[] getDTOArray(String jsonString, Class clazz, Map map) { setDataFormat2JAVA(); JSONArray array = JSONArray.fromObject(jsonString); Object[] obj = new Object[array.size()]; for (int i = 0; i < array.size(); i++) { JSONObject jsonObject = array.getJSONObject(i); obj[i] = JSONObject.toBean(jsonObject, clazz, map); } return obj; } /** * 从一个JSON数组得到一个java对象集合 * * @param object * @param clazz * @return */ public static List getDTOList(String jsonString, Class clazz) { setDataFormat2JAVA(); JSONArray array = JSONArray.fromObject(jsonString); List list = new ArrayList(); for (Iterator iter = array.iterator(); iter.hasNext();) { JSONObject jsonObject = (JSONObject) iter.next(); list.add(JSONObject.toBean(jsonObject, clazz)); } return list; } /** * 从一个JSON数组得到一个java对象集合,其中对象中包含有集合属性 * * @param object * @param clazz * @param map * 集合属性的类型 * @return */ public static List getDTOList(String jsonString, Class clazz, Map map) { setDataFormat2JAVA(); JSONArray array = JSONArray.fromObject(jsonString); List list = new ArrayList(); for (Iterator iter = array.iterator(); iter.hasNext();) { JSONObject jsonObject = (JSONObject) iter.next(); list.add(JSONObject.toBean(jsonObject, clazz, map)); } return list; } /** * 从json HASH表达式中获取一个map,该map支持嵌套功能 形如:{"id" : "johncon", "name" : "小强"} * 注意commons * -collections版本,必须包含org.apache.commons.collections.map.MultiKeyMap * * @param object * @return */ public static Map getMapFromJson(String jsonString) { setDataFormat2JAVA(); JSONObject jsonObject = JSONObject.fromObject(jsonString); Map map = new HashMap(); for (Iterator iter = jsonObject.keys(); iter.hasNext();) { String key = (String) iter.next(); map.put(key, jsonObject.get(key)); } return map; } /** * 从json数组中得到相应java数组 json形如:["123", "456"] * * @param jsonString * @return */ public static Object[] getObjectArrayFromJson(String jsonString) { JSONArray jsonArray = JSONArray.fromObject(jsonString); return jsonArray.toArray(); } /** * 把数据对象转换成json字符串 DTO对象形如:{"id" : idValue, "name" : nameValue, ...} * 数组对象形如:[{}, {}, {}, ...] map对象形如:{key1 : {"id" : idValue, "name" : * nameValue, ...}, key2 : {}, ...} * * @param object * @return */ public static String getJSONString(Object object) throws Exception { String jsonString = null; // 日期值处理器 JsonConfig jsonConfig = new JsonConfig(); jsonConfig.registerJsonValueProcessor(java.util.Date.class, new JsonDateValueProcessor()); if (object != null) { if (object instanceof Collection || object instanceof Object[]) { jsonString = JSONArray.fromObject(object, jsonConfig) .toString(); } else { jsonString = JSONObject.fromObject(object, jsonConfig) .toString(); } } return jsonString == null ? "{}" : jsonString; } private static void setDataFormat2JAVA() { // 设定日期转换格式 JSONUtils.getMorpherRegistry() .registerMorpher(new DateMorpher(new String[] { "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss" })); } }

上一篇:原型模式深浅复制
下一篇:Android使用HttpURLConnection显示网络图片

相关文章

关键词: JsonUtilsExtension

相关评论