json obj map 互转utils
2015-09-25 17:12
591 查看
package OOOXXX.common.json; import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Map; import com.fasterxml.jackson.core.JsonProcessingException; import me.ele.elog.Log; import me.ele.elog.LogFactory; import me.ele.mercurius.common.exception.BaseExceptions; import me.ele.mercurius.common.exception.SystemException; import org.apache.commons.lang.ClassUtils; import org.springframework.util.StringUtils; import com.fasterxml.jackson.core.JsonParseException; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException; public class JsonConvertUtils { private static Log logger = LogFactory.getLog(JsonConvertUtils.class); private static ObjectMapper mapper = new ObjectMapper(); /** * 把json字符串转成java对象 */ public static<T> T toObject(String json, Class<T> objectClass) { if(StringUtils.isEmpty(json)){ return null; } try { T result = mapper.readValue(json.getBytes("utf-8"), objectClass); return result; } catch (JsonParseException | UnrecognizedPropertyException ex) { logger.error("JSON解析为[" + ClassUtils.getShortClassName(objectClass) + "]出错!", ex); throw new SystemException(BaseExceptions.error4001, ex); } catch (IOException ex) { throw new SystemException(BaseExceptions.error4001, ex); } } public static<T> Map<String, Object> toMap(String json) { if(StringUtils.isEmpty(json)){ return null; } try { JsonNode node = mapper.readTree(json); return mapper.convertValue(node, Map.class); } catch (IOException ex) { throw new SystemException(BaseExceptions.error4001, ex); } } public static<T> List<T> toObjectList(String json, Class<T> objectClass) { if(StringUtils.isEmpty(json)){ return null; } try { List<T> result = new ArrayList<T>(); JsonNode listNode = mapper.readTree(json); for(JsonNode objNode : listNode){ T t = mapper.convertValue(objNode, objectClass); result.add(t); } return result; } catch (JsonParseException | UnrecognizedPropertyException ex) { logger.error("JSON解析为[" + ClassUtils.getShortClassName(objectClass) + "]出错!", ex); throw new SystemException(BaseExceptions.error4001, ex); } catch (IOException e) { throw new SystemException(BaseExceptions.error4001, e); } } /** * 把对象转成json字符串 */ public static String toJson(Object obj) { if (obj == null){ return null; } try { return mapper.writeValueAsString(obj); } catch (JsonProcessingException e) { throw new SystemException(BaseExceptions.error4001, e); } } }
相关文章推荐
- 移动开发js库Zepto.js应用详解
- 150925-周五不干活-HTML(CSS),Javascript
- JavaScript进阶内容1:各种对象类型检测
- js 正则表达式
- JSONP原理
- JS设计模式-工厂模式
- 解决IE8以上乱码
- Javascript 保存到本地
- javascript--内置函数
- JS 中如何判断 undefined 和 null
- extjs 表格可复制
- js 与或运算符 || && 妙用
- NetJson 解析字符串
- Javascript立即执行函数
- JavaScript的DOM编程--09--节点的替换
- Javascript立即执行函数
- 0132 jstack(查看线程)、jmap(查看内存)和jstat(性能分析)命令
- coco2d-js 多屏适配相关API
- html jsp中设置select disabled 当修改保存时,后台未读取到数据
- js实现图片上传预览及进度条