您的位置:首页 > 编程语言 > Java开发

Java模拟GSON

2016-08-11 19:13 316 查看
package com.gson;

import java.lang.reflect.Field;

import com.bean.Student;

/**
*
* @author GSON的原理
*/
public class MyGson {
public String toJson(Object object) throws IllegalArgumentException,
IllegalAccessException {
StringBuffer sb = new StringBuffer();

sb.append("{");

//《1》获取字节码
Class clazz = object.getClass();
//《2》获取属性对象
Field[] fields = clazz.getDeclaredFields();
for (int i = 0; i < fields.length; i++) {
Field field = fields[i];
field.setAccessible(true);

//《3》获取属性名
String fieldName = field.getName();
System.out.println(fieldName);

//《4》获取属性值
String fieldValue = (String) field.get(object);
System.out.println(fieldValue);

sb.append("\"" + fieldName + "\":\"" + fieldValue + "\"");

if (i != fields.length - 1)
sb.append(",");
}
sb.append("}");

return sb.toString();

}

public static void main(String[] args) throws IllegalArgumentException,
IllegalAccessException {
MyGson myGson = new MyGson();
System.out.println(myGson.toJson(new Student("john", "hahahhah")));
}
}


Student.java

package com.bean;

public class Student {
private String name;
private String sign;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getSign() {
return sign;
}

public void setSign(String sign) {
this.sign = sign;
}

public Student(String name, String sign) {
super();
this.name = name;
this.sign = sign;
}

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