com.github.fosin.cdp.util.JSONUtil Maven / Gradle / Ivy
package com.github.fosin.cdp.util;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import org.apache.commons.lang3.StringUtils;
import java.io.*;
import java.text.SimpleDateFormat;
/**
* JSONUtil class.
*
* @author 28860823
* @version $Id: $
*/
public class JSONUtil {
private static ObjectMapper mapper = new ObjectMapper();
static{
mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
mapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true);
mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
}
/**
* parse
*
* @param value a {@link java.lang.String} object.
* @param clz a {@link java.lang.Class} object.
* @param a T object.
* @return a T object.
*/
public static T parse(String value, Class clz){
if (StringUtils.isEmpty(value)) {
return null;
}
try {
return mapper.readValue(value, clz);
}
catch (Exception e) {
throw new IllegalStateException(e);
}
}
/**
* parse
*
* @param bytes an array of byte.
* @param clz a {@link java.lang.Class} object.
* @param a T object.
* @return a T object.
*/
public static T parse(byte[] bytes,Class clz){
try {
return mapper.readValue(bytes, clz);
}
catch (Exception e) {
throw new IllegalStateException(e);
}
}
/**
* parse
*
* @param ins a {@link java.io.InputStream} object.
* @param clz a {@link java.lang.Class} object.
* @param a T object.
* @return a T object.
*/
public static T parse(InputStream ins, Class clz){
try {
return mapper.readValue(ins, clz);
}
catch (Exception e) {
throw new IllegalStateException(e);
}
}
/**
* parse
*
* @param reader a {@link java.io.Reader} object.
* @param clz a {@link java.lang.Class} object.
* @param a T object.
* @return a T object.
*/
public static T parse(Reader reader, Class clz){
try {
return mapper.readValue(reader, clz);
}
catch (Exception e) {
throw new IllegalStateException(e);
}
}
/**
* createCollectionType
*
* @param collectionClass a {@link java.lang.Class} object.
* @param elementClasses a {@link java.lang.Class} object.
* @return a {@link com.fasterxml.jackson.databind.JavaType} object.
*/
public static JavaType createCollectionType(Class> collectionClass, Class>... elementClasses) {
return mapper.getTypeFactory().constructParametricType(collectionClass, elementClasses);
}
/**
* parse
*
* @param value a {@link java.lang.String} object.
* @param javaType a {@link com.fasterxml.jackson.databind.JavaType} object.
* @param a T object.
* @return a T object.
*/
@SuppressWarnings("unchecked")
public static T parse(String value, JavaType javaType) {
if (StringUtils.isEmpty(value)) {
return null;
}
try {
return (T) mapper.readValue(value, javaType);
}
catch (IOException e) {
throw new IllegalStateException(e);
}
}
/**
* update
*
* @param value a {@link java.lang.String} object.
* @param object a T object.
* @param a T object.
* @return a T object.
*/
@SuppressWarnings("unchecked")
public static T update(String value, T object) {
try {
return (T) mapper.readerForUpdating(object).readValue(value);
}
catch (Exception e) {
throw new IllegalStateException(e);
}
}
/**
* writeValueAsString
*
* @param o a {@link java.lang.Object} object.
* @return a {@link java.lang.String} object.
*/
public static String writeValueAsString(Object o){
try {
return mapper.writeValueAsString(o);
}
catch (Exception e) {
throw new IllegalStateException(e);
}
}
/**
* write
*
* @param outs a {@link java.io.OutputStream} object.
* @param o a {@link java.lang.Object} object.
*/
public static void write(OutputStream outs, Object o){
try {
mapper.writeValue(outs,o);
}
catch (Exception e) {
throw new IllegalStateException(e);
}
}
/**
* write
*
* @param writer a {@link java.io.Writer} object.
* @param o a {@link java.lang.Object} object.
*/
public static void write(Writer writer, Object o){
try {
mapper.writeValue(writer,o);
}
catch (Exception e) {
throw new IllegalStateException(e);
}
}
/**
* toString
*
* @param o a {@link java.lang.Object} object.
* @return a {@link java.lang.String} object.
*/
public static String toString(Object o){
try {
return mapper.writeValueAsString(o);
}
catch (Exception e) {
throw new IllegalStateException(e);
}
}
/**
* toBytes
*
* @param o a {@link java.lang.Object} object.
* @return an array of byte.
*/
public static byte[] toBytes(Object o){
try {
return mapper.writeValueAsBytes(o);
}
catch (Exception e) {
throw new IllegalStateException(e);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy