您的位置:首页 > Web前端 > JavaScript

将一个实体类输出到JSON字符串

2016-03-03 09:56 330 查看
public String toString(){
Object model = this;

StringBuffer str = new StringBuffer("{");

int fieldCount = 0;
Field[] field = model.getClass().getDeclaredFields(); // 获取实体类的所有属性,返回Field数组
for (int j = 0; j < field.length; j++) { // 遍历所有属性
String name = field[j].getName(); // 获取属性的名字
name = name.substring(0,1).toUpperCase()+name.substring(1);
String type = field[j].getGenericType().toString(); // 获取属性的类型

Method m = null;
try {
m = model.getClass().getMethod("get" + name);
Object vale = null;
try {
vale = m.invoke(model);
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
if (vale != null) {

fieldCount++;
if (type.equals("class java.lang.String") ||
type.equals("class java.util.Date")) {

if(fieldCount>1){
str.append(",");
}
str.append(name + ":\"" + vale + "\"");
}
else if(type.equals("class java.lang.Integer") ||
type.equals("class java.lang.Short") ||
type.equals("class java.lang.Long") ||
type.equals("class java.lang.Float") ||
type.equals("class java.lang.Double") ||
type.equals("class java.lang.Boolean")||
type.equals("long")||
type.equals("int")||
type.equals("float")||
type.equals("double"))
{
if(fieldCount>1){
str.append(",");
}
str.append(name + ":" + vale);
}
}
} catch (SecurityException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
}

}
str.append("}");
return str.toString();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: