[java]代码库package com.slb.webservice.servlet;

import java.io.IOException;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import org.apache.commons.lang3.StringUtils;

import org.apache.log4j.Logger;

import org.codehaus.jackson.JsonFactory;

import org.codehaus.jackson.JsonGenerationException;

import org.codehaus.jackson.JsonParseException;

import org.codehaus.jackson.JsonParser;

import org.codehaus.jackson.JsonToken;

import org.codehaus.jackson.map.JsonMappingException;

import org.codehaus.jackson.map.ObjectMapper;

/**

* json dto转换工具类

* @author LIHAO

* 2014/05/07

*/

public class JSONUtils {

static class LazyLoad {

static JSONUtils instance = new JSONUtils();

}

public static JSONUtils getInstance() {

return LazyLoad.instance;

}

private static ObjectMapper objectMapper = new ObjectMapper();

private static Logger _logger = Logger.getLogger(JSONUtils.class);

/**

* dto 转 json

* @param obj dto 需转化对象

* @return json 字符串

* @throws IOException

* @throws JsonMappingException

* @throws JsonGenerationException

* @throws Exception

*/

public String dtoToJson(Object obj) throws JsonGenerationException, JsonMappingException, IOException {

_logger.debug("objToJson convert start...");

String json = objectMapper.writeValueAsString(obj);

_logger.debug("objToJson convert end");

return json;

}

/**

* json 转 dto

* @param cl 类

* @param json json字符串

* @return Object

* @throws IOException

* @throws JsonMappingException

* @throws JsonParseException

*/

public Object jsonToDto(Class<?> cl, String json) throws JsonParseException, JsonMappingException, IOException {

_logger.debug("jsonToDto convert start...");

Object obj = objectMapper.readValue(json, cl);

_logger.debug("jsonToDto convert end");

return obj;

}

/**

* json 转 list dto

* @param cl 类

* @param json json字符串

* @return Object的List

* @throws IOException

* @throws JsonParseException

*/

public List<Object> jsonToListDto(Class<?> cl, String json) throws JsonParseException, IOException {

if (StringUtils.isNotBlank(json)) {

List<Object> list = new ArrayList<Object>();

_logger.debug("jsonToListDto convert start...");

JsonFactory f = new JsonFactory();

JsonParser jp = f.createJsonParser(json);

jp.nextToken();

while (jp.nextToken() == JsonToken.START_OBJECT) {

Object obj = objectMapper.readValue(jp, cl);

list.add(obj);

}

_logger.debug("jsonToListDto convert end");

return list;

}

return null;

}

/**

* list json 转 dto

* @param cl 类

* @param json list json字符串, 即[]格式

* @return Object

* @throws JsonParseException

* @throws IOException

*/

public Object listJsonToDto(Class<?> cl, String json) throws JsonParseException, IOException {

if (StringUtils.isNotBlank(json)) {

_logger.debug("listJsonToDto convert start...");

JsonFactory f = new JsonFactory();

JsonParser jp = f.createJsonParser(json);

jp.nextToken();

Object obj = null;

while (jp.nextToken() == JsonToken.START_OBJECT) {

obj = objectMapper.readValue(jp, cl);

break;

}

_logger.debug("listJsonToDto convert end");

return obj;

}

return null;

}

/**

* map 转 json

* @param map map格式数据

* @return json字符串

* @throws IOException

* @throws JsonMappingException

* @throws JsonGenerationException

*/

public String mapToJson(Map<String, List<?>> map) throws JsonGenerationException, JsonMappingException, IOException {

Map<String, List<?>> pageMap = new HashMap<String, List<?>>();

_logger.debug("mapToJson convert start...");

if (map != null && !map.isEmpty()) {

for (Map.Entry<String, List<?>> entry : map.entrySet()) {

pageMap.put(entry.getKey(), entry.getValue());

}

}

_logger.debug("mapToJson convert end");

return objectMapper.writeValueAsString(pageMap);

}

}

//源代码片段来自云代码http://yuncode.net

java dto 转换_json dto javabean转换工具类相关推荐

  1. 根据日期,转换成星座、生肖工具类

    package com.ss.common.util;import java.text.ParseException; import java.text.SimpleDateFormat; impor ...

  2. Java实现Unicode加码和解码的工具类

    写代码的时候经常会用到unicode编码和解码,这里记录一下unicode的工具类. 其实unicode编码和解码,就是16进制数字和char之间的来回转换. 先看一下工具类: package com ...

  3. java 手机号脱敏,身份证号脱敏 工具类

    java 手机号脱敏,身份证号脱敏 工具类 import org.apache.commons.lang3.StringUtils;/*** * @title: 脱敏工具类* @author: wll ...

  4. java将链接生成二维码工具类

    一.添加依赖 <!-- 生成二维码--><dependency><groupId>com.google.zxing</groupId><artif ...

  5. Java - HuTool 使用 EscapeUtil、XmlUtil等工具类(四)

    Java - HuTool 使用 EscapeUtil.XmlUtil等工具类(四) 本篇主要介绍 HuTool工具, 其是 java工具类,对于一些静态方法进行封装,虽然很小,但很全,里面拥有平时我 ...

  6. Java生成和解析二维码工具类(简单经典)

    Java生成和解析二维码工具类 开箱即用,简单不废话. pom.xml引入依赖 <!-- https://mvnrepository.com/artifact/com.google.zxing/ ...

  7. 记录一下:Java 汉字获取拼音或首字母工具类

    记录一下:Java 汉字获取拼音或首字母工具类 Maven依赖配置 Java代码 本文主要记录一下在Java中,如何将字符串中的中文转化为拼音,获取汉字串拼音首字母,获取汉字串拼音的工具类,以及相关的 ...

  8. Java教程:微信排序并加密工具类

    Java教程:微信排序并加密工具类 源码: import cn.bsit.commons.md5.MD5Utils;import java.util.Arrays; import java.util. ...

  9. JAVA之多sheet页表格生成工具类

    JAVA之多sheet页表格生成工具类 主要方法: import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.h ...

最新文章

  1. java兰顿蚂蚁解题思路_程序员面试金典 - 面试题 16.22. 兰顿蚂蚁(deque模拟)
  2. centos树莓派版本安装ssh_Raspberry Pi 4B(树莓派4B)远程ssh和jupyter lab环境搭建记录
  3. win系统下mysql忘记root账户密码的解决办法
  4. cloudwatch_将CloudWatch Logs与Cloudhub Mule集成
  5. 配置jdk1.7的环境变量
  6. JavaHelp 开发系统帮助(二)
  7. C#_基础_异常捕获(六)
  8. I/O的一些简单操作
  9. 用过的人都知道,AWT_Swing_多选框功能可是很好用啊
  10. CentOS下安装JDK6u30
  11. mysql 联合索引底层结构_MySQL联合索引底层数据结构
  12. 分享一下最近合成游戏源码
  13. 【OBS】OBS Studio 视频录制软件 的安装
  14. 使用theano进行深度学习实践(一)
  15. 计算机虚拟化的基本概念,虚拟化和虚拟机基本概念
  16. mp4 转 m3u8 java_java下载m3u8转ts合成mp4
  17. ADO.Net 之手机通讯录
  18. Unity文档——AssetBundle使用模式
  19. 【仅供娱乐】计算机算命之Python通天六十四卦
  20. 逻辑回归与梯度下降策略之Python实现

热门文章

  1. Android 蓝牙通信
  2. A100 GPU服务器安装GPU驱动教程
  3. Spark操作Hive(开启Kerberos认证)代码提交华为云DAYU的MRS Spark组件--方法流程及注意事项
  4. java支票金额转换
  5. php使用json_decode后数字对象转换成了科学计数法的解决方法
  6. 玩转TM4C1294XL(5)——PWM配置(死区互补输出)
  7. casperjs 轻松实现网页截图
  8. ICCV | 达摩院联合开源融合不确定度的自监督MVS框架
  9. 图数据库—Neo4j使用指南
  10. Eclipse 使用的装逼神器之 Eclipse 全屏模式