package com.jsontostruts2.util;
import java.beans.IntrospectionException;
import java.beans.Introspector; import java.beans.PropertyDescriptor; import java.util.List; /**
* <p> * @author ChenTao * <p> * @Date 2009-5-18 下午05:47:27 * <p> */ public class JsonUtil { /**
* @param object * 任意對(duì)象 * @return java.lang.String */ public static String objectToJson(Object object) { StringBuilder json = new StringBuilder(); if (object == null) { json.append("\"\""); } else if (object instanceof String || object instanceof Integer) { json.append("\"").append((String)object).append("\""); } else { json.append(beanToJson(object)); } return json.toString(); } /**
* 功能描述:傳入任意一個(gè) javabean 對(duì)象生成一個(gè)指定規(guī)格的字符串 * * @param bean * bean對(duì)象 * @return String */ public static String beanToJson(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 = objectToJson(props[i].getName()); String value = objectToJson(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(); } /**
* 功能描述:通過傳入一個(gè)列表對(duì)象,調(diào)用指定方法將列表中的數(shù)據(jù)生成一個(gè)JSON規(guī)格指定字符串 * * @param list * 列表對(duì)象 * @return java.lang.String */ public static String listToJson(List<?> list) { StringBuilder json = new StringBuilder(); json.append("["); if (list != null && list.size() > 0) { for (Object obj : list) { json.append(objectToJson(obj)); json.append(","); } json.setCharAt(json.length() - 1, ']'); } else { json.append("]"); } return json.toString(); } } |
|