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

使用反射,实现简单的JSON与Bean之间的转换

2015-12-09 21:11 811 查看
使用反射的bean转Json,

JSONObject json = new JSONObject();
Class<?> objClass = object.getClass();
Field[] fields = objClass.getDeclaredFields();
String strAObjectName;
String strValue = null;
JSONObject jsonB = null;
List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
Map<String, Object> map = null;
try {
System.out.println("---" + object.getClass().getName());
for (int j = 0; j < objClass.getDeclaredFields().length; j++) {
Field field = fields[j];
field.setAccessible(true);// 暴力访问,取消变量的私有权限。让对象可以访问
strAObjectName = fields[j].getName();
System.out.println(strAObjectName+"--->"+field.get(object));
json.accumulate(strAObjectName, field.get(object));

用Field类,获取到bean的属性。再用field.setAccessible(true)取消私有权限。最后一一赋值就好。
Json转Bean的话:

public static Object ToStringJson(Object object, JSONObject o) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException, UnsupportedEncodingException {
Class<?> objClass = object.getClass();
Field[] fields = objClass.getDeclaredFields();
String strAObjectName;
int i =0;
for (int k = 0; k < objClass.getDeclaredFields().length; k++) {
strAObjectName = fields[k].getName();
Field field = fields[k];
field.setAccessible(true);//暴力访问,取消age的私有权限。让对象可以访问
Iterator it = o.keys();
while (it.hasNext()) {
String key = it.next().toString();
field.set(object, (Object)o.get(key));

转JSON,关键要用到accumulate方法,转Bean,关键是用到set方法。其实很简单的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: