1 package com.liveyc.restfull.until;
2
3 import java.util.HashMap;
4 import java.util.Iterator;
5 import java.util.List;
6
7 import org.apache.commons.logging.Log;
8 import org.apache.commons.logging.LogFactory;
9 import org.codehaus.jackson.map.ObjectMapper;
10 import org.codehaus.jackson.type.JavaType;
11
12 import net.sf.json.JSONArray;
13 import net.sf.json.JSONObject;
14
15 public class JsonTools {
16
17 public static Log log = LogFactory.getLog(JsonTools.class);
18
19 private static ObjectMapper objectMapper = new ObjectMapper();
20 /**
21 *
22 * @author JSON工具类
23 * @param
24 *
25 */
26
27
28 /***
29 * 将对象序列化为JSON文本
30 * @param object
31 * @return
32 */
33 public static String toJSONString(Object object)
34 {
35 JSONArray jsonArray = JSONArray.fromObject(object);
36
37 return jsonArray.toString();
38 }
39
40 /***
41 * 将JSON对象序列化为JSON文本
42 * @param jsonObject
43 * @return
44 */
45 public static String toObjString(Object object)
46 {
47 JSONObject jsonObject = JSONObject.fromObject(object);
48 return jsonObject.toString();
49 }
50
51 /***
52 * 将对象转换为JSON对象数组
53 * @param object
54 * @return
55 */
56 public static JSONArray toJSONArray(Object object)
57 {
58 return JSONArray.fromObject(object);
59 }
60
61 /***
62 * 将对象转换为JSON对象
63 * @param object
64 * @return
65 */
66 public static JSONObject toJSONObject(Object object)
67 {
68 return JSONObject.fromObject(object);
69 }
70
71 /***
72 * 将对象转换为HashMap
73 * @param object
74 * @return
75 */
76 public static HashMap toHashMap(Object object)
77 {
78 HashMap<String, Object> data = new HashMap<String, Object>();
79 JSONObject jsonObject = JsonTools.toJSONObject(object);
80 Iterator it = jsonObject.keys();
81 while (it.hasNext())
82 {
83 String key = String.valueOf(it.next());
84 Object value = jsonObject.get(key);
85 data.put(key, value);
86 }
87
88 return data;
89 }
90
91
92
93
94
95
96 public static <T> T json2Bean(String json, Class<T> beanClass) {
97 try {
98 return objectMapper.readValue(json, beanClass);
99 } catch (Exception e) {
100 log.error(e);
101 new Exception("解析参数出错");
102 }
103 return null;
104 }
105
106
107 public static <T> List<T> json2List(String json, Class<T> beanClass) {
108 try {
109 return (List<T>)objectMapper.readValue(json, getCollectionType(List.class, beanClass));
110 } catch (Exception e) {
111 e.printStackTrace();
112 }
113 return null;
114 }
115
116 public static String getJsonFromObject(Object obj) {
117 try {
118 return objectMapper.writeValueAsString(obj);
119 } catch (Exception e) {
120 e.printStackTrace();
121 }
122 return null;
123 }
124
125 public static JavaType getCollectionType(Class<?> collectionClass, Class<?>... elementClasses) {
126 return objectMapper.getTypeFactory().constructParametricType(collectionClass, elementClasses);
127 }
128 }