1 package org.konghao.basic.util;
2
3 import java.io.IOException;
4 import java.io.StringWriter;
5
6 import com.fasterxml.jackson.core.JsonFactory;
7 import com.fasterxml.jackson.core.JsonGenerator;
8 import com.fasterxml.jackson.core.JsonParseException;
9 import com.fasterxml.jackson.databind.JsonMappingException;
10 import com.fasterxml.jackson.databind.ObjectMapper;
11
12 public class JsonUtil {
13 private static JsonUtil ju;
14 private static JsonFactory jf;
15 private static ObjectMapper mapper;
16
17 private JsonUtil() {
18 }
19
20 public static JsonUtil getInstance() {
21 if (ju == null)
22 ju = new JsonUtil();
23 return ju;
24 }
25
26 public static ObjectMapper getMapper() {
27 if (mapper == null) {
28 mapper = new ObjectMapper();
29 }
30 return mapper;
31 }
32
33 public static JsonFactory getFactory() {
34 if (jf == null)
35 jf = new JsonFactory();
36 return jf;
37 }
38
39 public String obj2json(Object obj) {
40 JsonGenerator jg = null;
41 try {
42 jf = getFactory();
43 mapper = getMapper();
44 StringWriter out = new StringWriter();
45 jg = jf.createJsonGenerator(out);
46 mapper.writeValue(jg, obj);
47 return out.toString();
48 } catch (IOException e) {
49 e.printStackTrace();
50 } finally {
51 try {
52 if (jg != null)
53 jg.close();
54 } catch (IOException e) {
55 e.printStackTrace();
56 }
57 }
58 return null;
59 }
60
61 public Object json2obj(String json, Class<?> clz) {
62 try {
63 mapper = getMapper();
64 return mapper.readValue(json, clz);
65 } catch (JsonParseException e) {
66 e.printStackTrace();
67 } catch (JsonMappingException e) {
68 e.printStackTrace();
69 } catch (IOException e) {
70 e.printStackTrace();
71 }
72 return null;
73 }
74
75
76 }