最代碼廣告位
zsf513的gravatar頭像
zsf5132013-01-09 17:02:00

json java工具包

將對象,集合等轉換成json格式

public class JsonUtil {

	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 if (obj instanceof Date) {
			json.append(date2json(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) {
				}
			}
			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();
	}


最代碼官方編輯于2014-1-20 17:32:18


AXIN編輯于2014-2-12 18:07:57


打賞

文件名:JsonUtil.java,文件大小:4K下載
最代碼最近下載分享源代碼列表最近下載
誰誰誰 LV72019年8月1日
月亮星星星星星星
代碼校生 LV42018年11月10日
月亮
wyx065747 LV642017年4月11日
皇冠
伯納烏515 LV32016年2月19日
星星星星星星
1316225796 LV112016年2月3日
月亮月亮星星星星星星
StevenXu LV132016年1月6日
月亮月亮月亮星星
TAO LV122015年11月15日
月亮月亮月亮
AXIN LV362014年2月12日
太陽太陽月亮
最代碼最近瀏覽分享源代碼列表最近瀏覽
王明科 LV32019年11月4日
星星星星星星
故事_sun LV262019年9月30日
太陽月亮月亮星星星星
caozongan LV122019年9月24日
月亮月亮月亮
誰誰誰 LV72019年8月1日
月亮星星星星星星
aduser001 LV42018年11月27日
月亮
代碼校生 LV42018年11月10日
月亮
liujl2019 LV62018年10月9日
月亮星星星星
fly666 LV92018年9月27日
月亮月亮星星
javatwx LV162018年7月20日
太陽
SaberKing LV12018年6月26日
星星
頂部客服微信二維碼底部
>掃描二維碼關注最代碼為好友掃描二維碼關注最代碼為好友
2008大乐透走势图