import java.io.StringWriter; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.codehaus.jackson.JsonFactory; import org.codehaus.jackson.JsonGenerator; import org.codehaus.jackson.JsonParser; import org.codehaus.jackson.map.DeserializationConfig.Feature; import org.codehaus.jackson.map.MappingJsonFactory; import org.codehaus.jackson.map.ObjectMapper; import org.codehaus.jackson.type.JavaType; public class JsonUtils { public static <K, V> String toJson(Map<K, V> obj) { String jsonString = ""; try { if (obj == null) { return ""; } StringWriter sw = new StringWriter(); JsonGenerator gen = new JsonFactory().createJsonGenerator(sw); ObjectMapper mapper = new ObjectMapper(); mapper.writeValue(gen, obj); jsonString = sw.toString(); sw.close(); } catch (Exception ex) { ex.printStackTrace(); return ""; } return jsonString; } @SuppressWarnings("unchecked") public static Map<String, Object> toMap(String json) { Map<String, Object> result = new HashMap<String, Object>(); try { if (json == null || json.equals("")) { return null; } ObjectMapper objectMapper = new ObjectMapper(); result = objectMapper.readValue(json, Map.class); if (result == null) { return new HashMap<String, Object>(); } } catch (Exception ex) { ex.printStackTrace(); } return result; } public static String toJson(Object object) { String json = ""; try { if (object == null) { return ""; } StringWriter sw = new StringWriter(); JsonGenerator gen = new JsonFactory().createJsonGenerator(sw); ObjectMapper mapper = new ObjectMapper(); mapper.writeValue(gen, object); json = sw.toString(); sw.close(); } catch (Exception ex) { ex.printStackTrace(); json = ""; } return json; } public static <T> T toObject(String json, Class<T> clazz) { T obj = null; try { if (json == null || json.equals("")) { return null; } JsonFactory jsonFactory = new MappingJsonFactory(); JsonParser jsonParser = jsonFactory.createJsonParser(json); ObjectMapper mapper = new ObjectMapper(); mapper.getDeserializationConfig().set(Feature.FAIL_ON_UNKNOWN_PROPERTIES, false); obj = mapper.readValue(jsonParser, clazz); } catch (Exception ex) { ex.printStackTrace(); obj = null; } return obj; } public static <T> List<T> toList(String json, Class<T> clazz) { if (json == null || json.equals("")) { return null; } ObjectMapper mapper = new ObjectMapper(); mapper.getDeserializationConfig().set(Feature.FAIL_ON_UNKNOWN_PROPERTIES, false); List<T> list = new ArrayList<T>(); try { JavaType type = mapper.getTypeFactory().constructParametricType(List.class, clazz); list = mapper.readValue(json, type); return list; } catch (Exception e) { e.printStackTrace(); } return list; } }
?
原文:http://supben.iteye.com/blog/2228989