import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.util.List;
/**
* json的操作類
*
* @author wsz
* @createTime 2012-4-12
* @version 1.0
*/
public class JsonUtil {
/**
* 傳入任意一個 object對象生成一個指定規格的字符串
*
* @param object 任意對象
* @return String
*/
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 Double) {
json.append("\"").append(object.toString()).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 (Exception e) {
e.printStackTrace();
}
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 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();
}
}