81,116
社区成员
发帖
与我相关
我的任务
分享
import java.io.IOException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import org.apache.commons.lang.StringEscapeUtils;
import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.JsonGenerator;
import org.codehaus.jackson.JsonProcessingException;
import org.codehaus.jackson.SerializableString;
import org.codehaus.jackson.io.CharacterEscapes;
import org.codehaus.jackson.io.SerializedString;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.JsonSerializer;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.map.SerializerProvider;
/***
* json工具类
*
* @author yanfang.zhao
*
*/
public class JsonUtil {
/**
* 将对象转换为json字符串,并将json字符串转换为unicode码
*
* @param obj
* @return
*/
public static String toJson(Object obj) {
if (obj == null) {
return null;
}
String jsonStr = "";
ObjectMapper mapper = new ObjectMapper();
DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
mapper.setDateFormat(df);
try {
mapper.getJsonFactory().setCharacterEscapes(new UnicodeCharacter());
mapper.getSerializerProvider().setNullValueSerializer(
new NullSerializer());
jsonStr = mapper.writeValueAsString(obj);
} catch (JsonGenerationException e) {
e.printStackTrace();
} catch (JsonMappingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return jsonStr;
}
}
class NullSerializer extends JsonSerializer<Object> {
public void serialize(Object value, JsonGenerator jgen,
SerializerProvider provider) throws IOException,
JsonProcessingException {
jgen.writeString("");
}
}
class UnicodeCharacter extends CharacterEscapes {
@Override
public int[] getEscapeCodesForAscii() {
return super.standardAsciiEscapesForJSON();
}
@Override
public SerializableString getEscapeSequence(int ch) {
return new SerializedString(StringEscapeUtils.escapeJava(String
.valueOf((char) ch)));
}
}