1. [文件] ObjectToJson.java ~ 2KB 下载(39) 跳至 [1] [2] [3] [4] [全屏预览]
01 | package com.ObjectToJson; |
02 |
03 | import java.lang.reflect.Field; |
04 | import java.lang.reflect.InvocationTargetException; |
05 | import java.lang.reflect.Method; |
06 | import java.util.ArrayList; |
07 | import java.util.Iterator; |
08 |
09 | public class ObjectToJson { |
10 | |
11 | |
12 | public static String ObjListToJson(ArrayList<?> list){ |
13 | StringBuilder build= new StringBuilder(); |
14 | //迭代器 |
15 | Iterator<?> iterator=list.iterator(); |
16 | build.append( "[" ); |
17 | String separate= "" ; |
18 | while (iterator.hasNext()){ |
19 | build.append(separate); |
20 | //object转json字符串 |
21 | String str=ObjToJson(iterator.next()); |
22 | build.append(str); |
23 | separate= "," ; |
24 | } |
25 | build.append( "]" ); |
26 | return build.toString(); |
27 | } |
28 | |
29 | @SuppressWarnings ( "unchecked" ) |
30 | public static String ObjToJson(Object obj){ |
31 | StringBuilder build= new StringBuilder(); |
32 | build.append( "{" ); |
33 | @SuppressWarnings ( "rawtypes" ) |
34 | Class cla= null ; |
35 | try { |
36 | //反射加载类 |
37 | cla=Class.forName(obj.getClass().getName()); |
38 | } catch (ClassNotFoundException e) { |
39 | System.out.println(obj.getClass().toString().concat( " 未找到这个类" )); |
40 | e.printStackTrace(); |
41 | return null ; |
42 | } |
43 | |
44 | StringBuffer methodname= new StringBuffer(); |
45 | //获取java类的变量 |
46 | Field[] fields=cla.getDeclaredFields(); |
47 | String separate= "" ; |
48 | for (Field temp:fields){ |
49 | build.append(separate); |
50 | build.append( "\"" ); |
51 | build.append(temp.getName()); |
52 | build.append( "\":" ); |
53 | |
54 | methodname.append( "get" ); |
55 | methodname.append(temp.getName().substring( 0 , 1 ).toUpperCase()); |
56 | methodname.append(temp.getName().substring( 1 )); |
57 | |
58 | build.append( "\"" ); |
59 | Method method= null ; |
60 | try { |
61 | //获取java的get方法 |
62 | method=cla.getMethod(methodname.toString()); |
63 | } catch (NoSuchMethodException | SecurityException e) { |
64 | methodname.setLength( 0 ); |
65 | e.printStackTrace(); |
66 | } |
67 | |
68 | try { |
69 | //执行get方法,获取变量参数的直。 |
70 | build.append(method.invoke(obj)); |
71 | } catch (IllegalAccessException e) { |
72 | e.printStackTrace(); |
73 | } catch (IllegalArgumentException e) { |
74 | e.printStackTrace(); |
75 | } catch (InvocationTargetException e) { |
76 | e.printStackTrace(); |
77 | } |
78 |
79 | build.append( "\"" ); |
80 | methodname.setLength( 0 ); |
81 | separate= "," ; |
82 | } |
83 | |
84 | build.append( "}" ); |
85 | return build.toString(); |
86 | } |
87 | } |
2. [文件] Test.java ~ 746B 下载(20)
01 | package com.test; |
02 |
03 | import java.util.ArrayList; |
04 |
05 | import com.ObjectToJson.ObjectToJson; |
06 |
07 | public class Test { |
08 | public static void main(String[] args){ |
09 | //数据构建 |
10 | ArrayList<User> list=getlist(); |
11 | //数据转换 |
12 | String listjson=ObjectToJson.ObjListToJson((ArrayList<?>)list); |
13 | System.out.println( "{\"data\":" +listjson+ "}" ); |
14 | } |
15 | |
16 | public static ArrayList<User> getlist(){ |
17 | User user00= new User(); |
18 | user00.setUserage( "27" ); |
19 | user00.setUsername( "smart" ); |
20 | user00.setUsersex( "man" ); |
21 | |
22 | User user01= new User(); |
23 | user01.setUserage( "27" ); |
24 | user01.setUsername( "smart00" ); |
25 | user01.setUsersex( "man" ); |
26 | |
27 | ArrayList<User> list= new ArrayList<User>(); |
28 |
29 | list.add(user00); |
30 | list.add(user01); |
31 | |
32 | return list; |
33 | } |
34 |
35 | } |
3. [文件] User.java ~ 494B 下载(20)
01 | package com.test; |
02 |
03 | public class User { |
04 | private String username; |
05 | private String usersex; |
06 | private String userage; |
07 | |
08 | public String getUsername() { |
09 | return username; |
10 | } |
11 | public void setUsername(String username) { |
12 | this .username = username; |
13 | } |
14 | public String getUsersex() { |
15 | return usersex; |
16 | } |
17 | public void setUsersex(String usersex) { |
18 | this .usersex = usersex; |
19 | } |
20 | public String getUserage() { |
21 | return userage; |
22 | } |
23 | public void setUserage(String userage) { |
24 | this .userage = userage; |
25 | } |
26 | |
27 |
28 | } |
4. [代码]测试结果
1 | { "data" :[{ "username" : "smart" , "usersex" : "man" , "userage" : "27" },{ "username" : "smart00" , "usersex" : "man" , "userage" : "27" }]} |