日期:2014-05-16  浏览次数:20500 次

将list对象转化为json
package com.hl.usersmanager.DataUtil;
import java.beans.IntrospectionException;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.sql.Date;
import java.sql.Time;
import java.sql.Timestamp;
import java.util.List;

/***
*
* @title: Json转化类
* @description: TODO(通过内省和反射机制将list对象转化为json)
* @param  
* @return 返回一个json字符串
* @throws
*/
public class JsonUtil {

public static String objectToJson(Object object) {
  StringBuilder json = new StringBuilder();
  if (object == null) {
   json.append("\"\"");
  } else if (object instanceof String || object instanceof Integer
    || object instanceof Date || object instanceof Time || object instanceof Timestamp) {
   json.append("\"").append(object.toString()).append("\"");
  } else {
   json.append(beanToJson(object));
  }
  return json.toString();
}

public static String beanToJson(Object bean) {
  StringBuilder json = new StringBuilder();
  json.append("{");
  PropertyDescriptor[] props = null;
  try {
   props = Introspector.getBeanInfo(bean.getClass(), Object.class)
     .getPropertyDescriptors();
//    for (int i = 0; i < props.length; i++) {
//    if(props[i] instanceof
//    IndexedPropertyDescriptor)//过滤掉默认的IndexedPropertyDescriptor
//    {
//    props=(IndexedPropertyDescriptor)props[i];
//    }
//  
//    }
  } catch (IntrospectionException e) {
  }
  if (props != null) {
   for (int i = 0; i < props.length; i++) {
    try {
     String name = objectToJson(props[i].getName());
     if (name.equals("\"callbacks\""))// 过滤掉默认的IndexedPropertyDescriptor
              // name="callbacks"
     {
      continue;
     }
     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();
}

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();
}
}

本篇文章来源于 我爱编程网 转载请以链接形式注明出处 网址:http://www.bcw52.com/JAVA/2807.html