ホームページ >Java >&#&チュートリアル >Java リフレクションは JavaBean を JSON に実装するサンプル コード
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"}]}
javabean から json サンプルコードへの Java リフレクション実装に関連するその他の記事については、PHP 中国語 Web サイトに注目してください。