import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import org.codehaus.jackson.JsonEncoding;
import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.JsonGenerator;
import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.JsonParser;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;
/**
* ClassName: JacksonUtil
* Function: 将java对象转换成JSON字符串,也可以将JSON字符串转换成java对象
* date: 2016-3-25 下午2:20:57
*/
public class JacksonUtil {
/**
* 将java对象转换成json字符串
* @param object
* @return
* @throws IOException
* @throws JsonMappingException
* @throws JsonGenerationException
*/
public static String writeEntity2JSON(Object object) throws JsonGenerationException, JsonMappingException, IOException {
return new ObjectMapper().writeValueAsString(object);
}
/**
* 将java对象转换成json字符串,并将输出结果写入指定输出流中
* @param object
* @param out
* @throws IOException
*/
public static void writeEntity2JSON(Object object, OutputStream out) throws IOException {
JsonGenerator jsonGenerator = new ObjectMapper().getJsonFactory().createJsonGenerator(out, JsonEncoding.UTF8);
jsonGenerator.writeObject(object);
}
/**
* 将json字符串转换成JavaBean对象
* @param jsonString
* @param valueType
* @return
* @throws JsonParseException
* @throws JsonMappingException
* @throws IOException
*/
public static <T> T readJSON2Entity(String jsonString, Class<T> valueType) throws JsonParseException, JsonMappingException, IOException {
return new ObjectMapper().readValue(jsonString, valueType);
}
/**
* 将json字符串转换成JavaBean对象,并将对象写入指定输入流
* @param jsonString
* @param valueType
* @param in
* @return
* @throws JsonParseException
* @throws JsonMappingException
* @throws IOException
*/
public static Object readJSON2Entity(String jsonString, Object valueType, InputStream in) throws JsonParseException, JsonMappingException, IOException {
JsonParser jsonParser = new ObjectMapper().getJsonFactory().createJsonParser(in);
return jsonParser.readValueAs(valueType.getClass());
}
/**
* 将json file转换成JavaBean对象
* @param file
* @param valueType
* @return
* @throws JsonParseException
* @throws JsonMappingException
* @throws IOException
*/
public static Object readJSON2Entity(File file, Object valueType) throws JsonParseException, JsonMappingException, IOException {
return new ObjectMapper().readValue(file, valueType.getClass());
}
/**
* 将json file转换成JavaBean对象
* @param file
* @param valueType
* @return
* @throws JsonParseException
* @throws JsonMappingException
* @throws IOException
*/
public static Object readJSON2Entity(InputStream in, Object valueType) throws JsonParseException, JsonMappingException, IOException {
return new ObjectMapper().readValue(in, valueType.getClass());
}
}