package com.mossle.core.mapper;
import java.io.IOException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.util.JSONPObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* json转换.
*/
public class JsonMapper {
/** logger. */
private static Logger logger = LoggerFactory.getLogger(JsonMapper.class);
/** jackson. */
private ObjectMapper mapper;
/** constructor. */
public JsonMapper() {
mapper = new ObjectMapper();
mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
}
public String toJson(Object object) throws IOException {
return mapper.writeValueAsString(object);
}
public <T> T fromJson(String jsonString, Class<T> clazz) throws IOException {
if ((jsonString == null) || "".equals(jsonString.trim())) {
return null;
}
return mapper.readValue(jsonString, clazz);
}
/**
* new TypeReference<List<String>>(){}
*/
public <T> T fromJson(String jsonString, TypeReference typeReference)
throws IOException {
if ((jsonString == null) || "".equals(jsonString.trim())) {
return null;
}
return (T) mapper.readValue(jsonString, typeReference);
}
public String toJsonP(String functionName, Object object)
throws IOException {
return toJson(new JSONPObject(functionName, object));
}
}