搜档网
当前位置:搜档网 › java 把集合List Map Set String Array Bean Object 转成JSON .

java 把集合List Map Set String Array Bean Object 转成JSON .

java 把集合List Map Set String Array Bean Object 转成JSON .
分类: java 2013-01-07 11:22 128人阅读 评论(0) 收藏 举报
java 把集合List Map Set String Array Bean Object 转成JSON的工具类,不多说了,见代码:



[java] view plaincopyprint?
01.public class JSONUtil {
02.
03. /**
04. * 把object转成Json
05. *
06. * @param obj
07. * @return
08. */
09. public static String object2json(Object obj) {
10. StringBuilder json = new StringBuilder();
11. if (obj == null) {
12. json.append("\"\"");
13. } else if (obj instanceof String || obj instanceof Integer
14. || obj instanceof Float || obj instanceof Boolean
15. || obj instanceof Short || obj instanceof Double
16. || obj instanceof Long || obj instanceof BigDecimal
17. || obj instanceof BigInteger || obj instanceof Byte) {
18. json.append("\"").append(string2json(obj.toString())).append("\"");
19. } else if (obj instanceof Object[]) {
20. json.append(array2json((Object[]) obj));
21. } else if (obj instanceof List) {
22. json.append(list2json((List) obj));
23. } else if (obj instanceof Map) {
24. json.append(map2json((Map) obj));
25. } else if (obj instanceof Set) {
26. json.append(set2json((Set) obj));
27. } else {
28. json.append(bean2json(obj));
29. }
30. return json.toString();
31. }
32.
33. /**
34. * 把bean转成Json
35. *
36. * @param bean
37. * @return
38. */
39. public static String bean2json(Object bean) {
40. StringBuilder json = new StringBuilder();
41. json.append("{");
42. PropertyDescriptor[] props = null;
43. try {
44. props = Introspector.getBeanInfo(bean.getClass(), Object.class)
45. .getPropertyDescriptors();
46. } catch (IntrospectionException e) {
47. }
48. if (props != null) {
49. for (int i = 0; i < props.length; i++) {
50. try {
51. String name = object2json(props[i].getName());
52. String value = object2json(props[i].getReadMethod().invoke(
53. bean));
54. json.append(name);
55. json.append(":");
56. json.append(value);
57. json.append(",");
58. } catch (Exception e) {
59. }
60. }
61. json.setCharAt(json.length() - 1, '}');
62. } else {
63. json.append("}");
64. }
65. return json.toString();
66. }
67.
68. /**
69. * List转Json
70. *
71.

* @param list
72. * @return
73. */
74. public static String list2json(List list) {
75. StringBuilder json = new StringBuilder();
76. json.append("[");
77. if (list != null && list.size() > 0) {
78. for (Object obj : list) {
79. json.append(object2json(obj));
80. json.append(",");
81. }
82. json.setCharAt(json.length() - 1, ']');
83. } else {
84. json.append("]");
85. }
86. return json.toString();
87. }
88.
89. /**
90. * 数组转Json
91. *
92. * @param array
93. * @return
94. */
95. public static String array2json(Object[] array) {
96. StringBuilder json = new StringBuilder();
97. json.append("[");
98. if (array != null && array.length > 0) {
99. for (Object obj : array) {
100. json.append(object2json(obj));
101. json.append(",");
102. }
103. json.setCharAt(json.length() - 1, ']');
104. } else {
105. json.append("]");
106. }
107. return json.toString();
108. }
109.
110. /**
111. * Map转Json
112. *
113. * @param map
114. * @return
115. */
116. public static String map2json(Map map) {
117. StringBuilder json = new StringBuilder();
118. json.append("{");
119. if (map != null && map.size() > 0) {
120. for (Object key : map.keySet()) {
121. json.append(object2json(key));
122. json.append(":");
123. json.append(object2json(map.get(key)));
124. json.append(",");
125. }
126. json.setCharAt(json.length() - 1, '}');
127. } else {
128. json.append("}");
129. }
130. return json.toString();
131. }
132.
133. /**
134. * Set转Json
135. *
136. * @param set
137. * @return
138. */
139. public static String set2json(Set set) {
140. StringBuilder json = new StringBuilder();
141. json.append("[");
142. if (set != null && set.size() > 0) {
143. for (Object obj : set) {
144. json.append(object2json(obj));
145. json.append(",");
146. }
147. json.setCharAt(json.length() - 1, ']');
148. } else {
149. json.append("]");
150. }
151. return json.toString();
152. }
153.
154. /**
155. * 字符串转Json
156. *
157. * @param s
158. * @return
159. */
160. public static String string2json(String s) {
161. if (s == null)
162. return "";
163. StringBuilder sb = new StringBuilder(

);
164. for (int i = 0; i < s.length(); i++) {
165. char ch = s.charAt(i);
166. switch (ch) {
167. case '"':
168. sb.append("\\\"");
169. break;
170. case '\\':
171. sb.append("\\\\");
172. break;
173. case '\b':
174. sb.append("\\b");
175. break;
176. case '\f':
177. sb.append("\\f");
178. break;
179. case '\n':
180. sb.append("\\n");
181. break;
182. case '\r':
183. sb.append("\\r");
184. break;
185. case '\t':
186. sb.append("\\t");
187. break;
188. case '/':
189. sb.append("\\/");
190. break;
191. default:
192. if (ch >= '\u0000' && ch <= '\u001F') {
193. String ss = Integer.toHexString(ch);
194. sb.append("\\u");
195. for (int k = 0; k < 4 - ss.length(); k++) {
196. sb.append('0');
197. }
198. sb.append(ss.toUpperCase());
199. } else {
200. sb.append(ch);
201. }
202. }
203. }
204. return sb.toString();
205. }

相关主题