|
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","userage":"27"}]} (编辑:安卓应用网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|