用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

json dto javabean转换工具类

2015-01-23 作者: java源代码大全举报

[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
			


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...