話不多說(shuō),請(qǐng)看代碼:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
|
package com; import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.util.List; import com.fasterxml.jackson.core.JsonParseException; import com.fasterxml.jackson.databind.JavaType; import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.ObjectMapper; /** * jackson 復(fù)雜 對(duì)象集合 的幾種簡(jiǎn)單轉(zhuǎn)換 * @author lenovo * * @param <T> */ public class Main<T> { static ObjectMapper mapper = new ObjectMapper(); public static void main(String[] args) throws JsonParseException, JsonMappingException, IOException { String josn = "{\"UserID\":1,\"LoginName\":\"唐工\",\"Truename\":\"超級(jí)\",\"Nickname\":null,\"LoginPwd\":\"E10ADC3949BA59ABBE56E057F20F883E\",\"QQ\":\"\",\"Phone\":\"\",\"Email\":null,\"Remark\":\"\",\"Account_Non_Locked\":0,\"Telelephone\":null,\"IsDelete\":0}" ; User u = mapper.readValue(josn, User. class ); // User u=new Main<User>().jsonStreamConverObject(josn, User.class); System.out.println( "轉(zhuǎn)對(duì)象:" + u); // 轉(zhuǎn)集合 String josn2 = "[{\"UserID\":1,\"LoginName\":\"唐工\",\"Truename\":\"超級(jí)\",\"Nickname\":null,\"LoginPwd\":\"E10ADC3949BA59ABBE56E057F20F883E\",\"QQ\":\"\",\"Phone\":\"\",\"Email\":null,\"Remark\":\"\",\"Account_Non_Locked\":0,\"Telelephone\":null,\"IsDelete\":0}]" ; JavaType javaType = mapper.getTypeFactory().constructParametricType( List. class , User. class ); List<User> me = mapper.readValue(josn2, javaType); System.out.println( "轉(zhuǎn)集合me:" + me); // 對(duì)象里有 集合 轉(zhuǎn)換 String josn3 = "{\"UserID\":1,\"LoginName\":\"唐工\",\"Truename\":\"超級(jí)\",\"Nickname\":null,\"LoginPwd\":\"E10ADC3949BA59ABBE56E057F20F883E\",\"QQ\":\"\",\"Phone\":\"\",\"Email\":null,\"Remark\":\"\",\"Account_Non_Locked\":0,\"Telelephone\":null,\"IsDelete\":0,\"RoleList\":[{\"Roleid\":0,\"Name\":\"超級(jí)管理員\",\"Show_Name\":\"超級(jí)管理員\",\"Remark\":null,\"Type\":1}]}" ; User u3 = mapper.readValue(josn3, User. class ); // 簡(jiǎn)單方式 // User u3=new Main<User>().jsonConverObject(josn3, User.class); 流方式 System.out.println( "轉(zhuǎn)對(duì)象里有集合u3:" + u3); // 集合 對(duì)象 集合 轉(zhuǎn)換 String josn4 = "[{\"UserID\":1,\"LoginName\":\"唐工\",\"Truename\":\"超級(jí)\",\"Nickname\":null,\"LoginPwd\":\"E10ADC3949BA59ABBE56E057F20F883E\",\"QQ\":\"\",\"Phone\":\"\",\"Email\":null,\"Remark\":\"\",\"Account_Non_Locked\":0,\"Telelephone\":null,\"IsDelete\":0,\"RoleList\":[{\"Roleid\":0,\"Name\":\"超級(jí)管理員\",\"Show_Name\":\"超級(jí)管理員\",\"Remark\":null,\"Type\":1}]},{\"UserID\":2,\"LoginName\":\"唐工\",\"Truename\":\"超級(jí)\",\"Nickname\":null,\"LoginPwd\":\"E10ADC3949BA59ABBE56E057F20F883E\",\"QQ\":\"\",\"Phone\":\"\",\"Email\":null,\"Remark\":\"\",\"Account_Non_Locked\":0,\"Telelephone\":null,\"IsDelete\":0,\"RoleList\":[{\"Roleid\":0,\"Name\":\"超級(jí)管理員\",\"Show_Name\":\"超級(jí)管理員\",\"Remark\":null,\"Type\":1}]}]" ; JavaType javaType4 = mapper.getTypeFactory().constructParametricType( List. class , User. class ); List<User> list = mapper.readValue(josn4, javaType4); System.out.println( "集合里是對(duì)象 對(duì)象里有集合轉(zhuǎn)換:" + list); } /*** * 轉(zhuǎn)對(duì)象 * @param josn * @param clz * @return */ public T jsonStreamConverObject(String josn, Class<T> clz) { T t = null ; // ObjectMapper jacksonMapper = new ObjectMapper(); InputStreamReader in = new InputStreamReader( new ByteArrayInputStream( josn.getBytes())); BufferedReader streamReader = new BufferedReader(in); StringBuilder buff = new StringBuilder(); String inputStr; try { while ((inputStr = streamReader.readLine()) != null ) buff.append(inputStr); // ObjectMapper mapper = new ObjectMapper(); t = mapper.readValue(buff.toString(), clz); } catch (IOException e) { e.printStackTrace(); } return t; } /*** * 轉(zhuǎn)對(duì)象 * @param josn * @param clz * @return */ public T jsonConverObject(String josn, Class<T> clz) { T t = null ; try { t = mapper.readValue(josn, clz); } catch (JsonParseException e) { e.printStackTrace(); } catch (JsonMappingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return t; } /** * 轉(zhuǎn)集合 * @param josn * @param clz * @return */ public List<T> jsonConverList(String josn, Class<T> clz) { List<T> me = null ; try { // jacksonMapper // .disable(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES); // jacksonMapper.enableDefaultTyping(); // jacksonMapper.setVisibility(JsonMethod.FIELD,JsonAutoDetect.Visibility.ANY); // jacksonMapper.configure(SerializationConfig.Feature.INDENT_OUTPUT, // false);//格式化 // jacksonMapper.setSerializationInclusion(JsonSerialize.Inclusion.NON_NULL); // jacksonMapper.configure(SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS, // false); JavaType javaType = mapper.getTypeFactory() .constructParametricType(List. class , clz); // clz.selGenType().getClass() me = mapper.readValue(josn, javaType); } catch (JsonParseException e) { e.printStackTrace(); } catch (JsonMappingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return me; } } /** * output: * 轉(zhuǎn)對(duì)象:User [UserID=1, LoginName=唐工, Truename=超級(jí), Nickname=null, LoginPwd=E10ADC3949BA59ABBE56E057F20F883E, QQ=, Phone=, Email=null, Remark=, Account_Non_Locked=0, Telelephone=null, Indate=null, IsDelete=0, RoleList=null] * 轉(zhuǎn)集合me:[User [UserID=1, LoginName=唐工, Truename=超級(jí), Nickname=null, LoginPwd=E10ADC3949BA59ABBE56E057F20F883E, QQ=, Phone=, Email=null, Remark=, Account_Non_Locked=0, Telelephone=null, Indate=null, IsDelete=0, RoleList=null]] * 轉(zhuǎn)對(duì)象里有集合u3:User [UserID=1, LoginName=唐工, Truename=超級(jí), Nickname=null, LoginPwd=E10ADC3949BA59ABBE56E057F20F883E, QQ=, Phone=, Email=null, Remark=, Account_Non_Locked=0, Telelephone=null, Indate=null, IsDelete=0, RoleList=[Role [Roleid=0, Name=超級(jí)管理員, Show_Name=超級(jí)管理員, Remark=null, Type=1]]] * 集合里是對(duì)象 對(duì)象里有集合轉(zhuǎn)換:[User [UserID=1, LoginName=唐工, Truename=超級(jí), Nickname=null, LoginPwd=E10ADC3949BA59ABBE56E057F20F883E, QQ=, Phone=, Email=null, Remark=, Account_Non_Locked=0, Telelephone=null, Indate=null, IsDelete=0, RoleList=[Role [Roleid=0, Name=超級(jí)管理員, Show_Name=超級(jí)管理員, Remark=null, Type=1]]], User [UserID=2, LoginName=唐工, Truename=超級(jí), Nickname=null, LoginPwd=E10ADC3949BA59ABBE56E057F20F883E, QQ=, Phone=, Email=null, Remark=, Account_Non_Locked=0, Telelephone=null, Indate=null, IsDelete=0, RoleList=[Role [Roleid=0, Name=超級(jí)管理員, Show_Name=超級(jí)管理員, Remark=null, Type=1]]]] * */ |
以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,同時(shí)也希望多多支持服務(wù)器之家!
原文鏈接:http://www.cnblogs.com/renjiaqi/p/6376751.html