zsf513的gravatar头像
zsf513 2013-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 下载
最代码最近下载分享源代码列表最近下载
1358849392  LV21 2022年11月11日
503382513  LV10 2022年1月19日
谁谁谁  LV7 2019年8月1日
代码校生  LV4 2018年11月10日
wyx065747  LV67 2017年4月11日
伯纳乌515  LV3 2016年2月19日
1316225796  LV11 2016年2月3日
StevenXu  LV13 2016年1月6日
TAO  LV12 2015年11月15日
AXIN  LV36 2014年2月12日
最代码最近浏览分享源代码列表最近浏览
Tg171017  LV12 2023年7月20日
1358849392  LV21 2022年11月11日
503382513  LV10 2022年1月19日
ewan007  LV30 2021年10月10日
樊樊樊樊樊樊阵雨  LV18 2021年3月18日
dongzhan  LV12 2020年12月7日
wei112233  LV15 2020年4月21日
王明科  LV4 2019年11月4日
故事_sun  LV26 2019年9月30日
caozongan  LV19 2019年9月24日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友