把任意类型对象转化为json字符串(工具类)

574 篇文章 4 订阅

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.core.JsonGenerationException;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.IOException;
import java.io.StringWriter;
import java.io.Writer;

public final class JacksonUtil {

private final static Logger log = LoggerFactory.getLogger(JacksonUtil.class);

private JacksonUtil() {
}

private static final ObjectMapper mapper = getNoNullValuesMapper(new ObjectMapper());

public static ObjectMapper getNoNullValuesMapper(ObjectMapper mapper) {
	mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
	mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
	return mapper;
}

/**
 * JSON to Bean.
 */
public static <T> T toBean(final String jsonString, Class clazz) throws IOException {
	return (T) mapper.readValue(jsonString, clazz);
}

/**
 * JSON to Bean.
 */
public static <T> T toBeanQuietly(final String jsonString, Class clazz) {
	try {
		return (T) mapper.readValue(jsonString, clazz);
	} catch (IOException e) {
		log.error("", e);
		return null;
	}
}

/**
 * to JSON.
 */
public static String toJsonString(final Object data) {
	Writer strWriter = new StringWriter();
	String jsonString = toJsonString(strWriter, data);
	try {
		strWriter.flush();
		strWriter.close();
	} catch (IOException e) {
		log.error("", e);
	}
	return jsonString;
}

/**
 * to JSON.
 */
public static String toJsonString(Writer strWriter, final Object data) {
	return toJsonString(mapper, strWriter, data);
}

/**
 * to JSON.
 */
public static String toJsonString(ObjectMapper mapper, Writer strWriter, final Object data) {
	try {
		mapper.writeValue(strWriter, data);
	} catch (JsonGenerationException e) {
		log.error("", e);
	} catch (JsonMappingException e) {
		log.error("", e);
	} catch (IOException e) {
		log.error("", e);
	}
	return strWriter.toString();
}

}

参考jar
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

jackson-annotations-2.0.0.jar
jackson-core-2.0.0.jar
jackson-databind-2.0.0.jar
日志jar
在这里插入图片描述
slf4j-api-1.6.6.jar

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值