手机
当前位置:查字典教程网 >编程开发 >Java >java反射实现javabean转json实例代码
java反射实现javabean转json实例代码
摘要:ObjectToJson.java复制代码代码如下:packagecom.ObjectToJson;importjava.lang.refl...

ObjectToJson.java

复制代码 代码如下:

package com.ObjectToJson;

import java.lang.reflect.Field;

import java.lang.reflect.InvocationTargetException;

import java.lang.reflect.Method;

import java.util.ArrayList;

import java.util.Iterator;

public class ObjectToJson {

public static String ObjListToJson(ArrayList<?> list){

StringBuilder build=new StringBuilder();

//迭代器

Iterator<?> iterator=list.iterator();

build.append("[");

String separate="";

while(iterator.hasNext()){

build.append(separate);

//object转json字符串

String str=ObjToJson(iterator.next());

build.append(str);

separate=",";

}

build.append("]");

return build.toString();

}

@SuppressWarnings("unchecked")

public static String ObjToJson(Object obj){

StringBuilder build=new StringBuilder();

build.append("{");

@SuppressWarnings("rawtypes")

Class cla=null;

try {

//反射加载类

cla=Class.forName(obj.getClass().getName());

} catch (ClassNotFoundException e) {

System.out.println(obj.getClass().toString().concat(" 未找到这个类"));

e.printStackTrace();

return null;

}

StringBuffer methodname=new StringBuffer();

//获取java类的变量

Field[] fields=cla.getDeclaredFields();

String separate="";

for(Field temp:fields){

build.append(separate);

build.append(""");

build.append(temp.getName());

build.append("":");

methodname.append("get");

methodname.append(temp.getName().substring(0,1).toUpperCase());

methodname.append(temp.getName().substring(1));

build.append(""");

Method method=null;

try {

//获取java的get方法

method=cla.getMethod(methodname.toString());

} catch (NoSuchMethodException | SecurityException e) {

methodname.setLength(0);

e.printStackTrace();

}

try {

//执行get方法,获取变量参数的直。

build.append(method.invoke(obj));

} catch (IllegalAccessException e) {

e.printStackTrace();

} catch (IllegalArgumentException e) {

e.printStackTrace();

} catch (InvocationTargetException e) {

e.printStackTrace();

}

build.append(""");

methodname.setLength(0);

separate=",";

}

build.append("}");

return build.toString();

}

}

Test.java

复制代码 代码如下:

package com.test;

import java.util.ArrayList;

import com.ObjectToJson.ObjectToJson;

public class Test {

public static void main(String[] args){

//数据构建

ArrayList<User> list=getlist();

//数据转换

String listjson=ObjectToJson.ObjListToJson((ArrayList<?>)list);

System.out.println("{"data":"+listjson+"}");

}

public static ArrayList<User> getlist(){

User user00=new User();

user00.setUserage("27");

user00.setUsername("smart");

user00.setUsersex("man");

User user01=new User();

user01.setUserage("27");

user01.setUsername("smart00");

user01.setUsersex("man");

ArrayList<User> list=new ArrayList<User>();

list.add(user00);

list.add(user01);

return list;

}

}

User.java

复制代码 代码如下:

package com.test;

public class User {

private String username;

private String usersex;

private String userage;

public String getUsername() {

return username;

}

public void setUsername(String username) {

this.username = username;

}

public String getUsersex() {

return usersex;

}

public void setUsersex(String usersex) {

this.usersex = usersex;

}

public String getUserage() {

return userage;

}

public void setUserage(String userage) {

this.userage = userage;

}

}

测试结果

复制代码 代码如下:

{"data":[{"username":"smart","usersex":"man","userage":"27"},{"username":"smart00","usersex":"man","userage":"27"}]}

【java反射实现javabean转json实例代码】相关文章:

java 读取excel内容具体代码

Java通过接口实现匿名类的实例代码

java得到某年某周的第一天实现思路及代码

Java自动解压文件实例代码

java 取出文本文件中空行的实例代码

java 图片验证码的实现代码

Java实现随机验证码功能实例代码

Java反射机制的学习总结

java 实现约瑟夫环的实例代码

java 获取数据库连接的实现代码

精品推荐
分类导航