package com.hongqiang.shop.common.utils;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.PrintWriter;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.io.IOUtils;
import org.springframework.util.Assert;
public final class JsonUtils
{
private static ObjectMapper objectMapper = new ObjectMapper();
public static String toJson(Object value)
{
try
{
return objectMapper.writeValueAsString(value);
}
catch (Exception localException)
{
localException.printStackTrace();
}
return null;
}
public static void toJson(HttpServletResponse response, String contentType, Object value)
{
Assert.notNull(response);
Assert.hasText(contentType);
try
{
response.setContentType(contentType);
objectMapper.writeValue(response.getWriter(), value);
}
catch (Exception localException)
{
localException.printStackTrace();
}
}
public static void toJson(HttpServletResponse response, Object value)
{
Assert.notNull(response);
PrintWriter localPrintWriter = null;
try
{
localPrintWriter = response.getWriter();
objectMapper.writeValue(localPrintWriter, value);
localPrintWriter.flush();
}
catch (Exception localException)
{
localException.printStackTrace();
}
finally
{
IOUtils.closeQuietly(localPrintWriter);
}
}
public static <T> T toObject(String json, Class<T> valueType)
{
Assert.hasText(json);
Assert.notNull(valueType);
try
{
return objectMapper.readValue(json, valueType);
}
catch (Exception localException)
{
localException.printStackTrace();
}
return null;
}
public static <T> T toObject(String json, TypeReference<?> typeReference)
{
Assert.hasText(json);
Assert.notNull(typeReference);
try
{
return objectMapper.readValue(json, typeReference);
}
catch (Exception localException)
{
localException.printStackTrace();
}
return null;
}
public static <T> T toObject(String json, JavaType javaType)
{
Assert.hasText(json);
Assert.notNull(javaType);
try
{
return objectMapper.readValue(json, javaType);
}
catch (Exception localException)
{
localException.printStackTrace();
}
return null;
}
}