最代码广告位
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日
太阳太阳月亮
最代码最近浏览分享源代码列表最近浏览
wei112233 LV154月21日
月亮月亮月亮星星星星星星
王明科 LV42019年11月4日
月亮
故事_sun LV262019年9月30日
太阳月亮月亮星星星星
caozongan LV132019年9月24日
月亮月亮月亮星星
谁谁谁 LV72019年8月1日
月亮星星星星星星
aduser001 LV42018年11月27日
月亮
代码校生 LV42018年11月10日
月亮
liujl2019 LV62018年10月9日
月亮星星星星
fly666 LV92018年9月27日
月亮月亮星星
javatwx LV162018年7月20日
太阳
顶部客服微信二维码底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友