分享

JsonUtil

 怀旧妞妞 2011-06-29
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
  *            任意对象
  * @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();
 }
 /**
  * 功能描述:传入任意一个 javabean 对象生成一个指定规格的字符串
  *
  * @param bean
  *            bean对象
  * @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();
 }
 /**
  * 功能描述:通过传入一个列表对象,调用指定方法将列表中的数据生成一个JSON规格指定字符串
  *
  * @param list
  *            列表对象
  * @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();
 }
}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约