/**
* json 日期转换类
* @author
*
*/
public class TimestampJsonValueProcessor implements JsonValueProcessor{
public static final String DEFAULT_DATE_PATTERN = "yyyy-MM-dd";
private DateFormat dateFormat;
public TimestampJsonValueProcessor(String datePattern) {
if(datePattern != null)
dateFormat = new SimpleDateFormat(datePattern);
else
dateFormat = new SimpleDateFormat(DEFAULT_DATE_PATTERN);
}
public Object processArrayValue(Object value, JsonConfig jsonConfig) {
return process(value);
}
public Object processObjectValue(String key, Object value,JsonConfig jsonConfig) {
return process(value);
}
private Object process(Object value) {
if (value == null) {
return "";
}else if(value instanceof java.util.Date){
return dateFormat.format((java.util.Date) value);
}else{
return dateFormat.format((Timestamp) value);
}
}
}
/**
* json 日期转换类
* @author
*
*/
public class LobJsonValueProcessor implements JsonValueProcessor{
public LobJsonValueProcessor() {
}
public Object processArrayValue(Object value, JsonConfig jsonConfig) {
return process(value);
}
public Object processObjectValue(String key, Object value,JsonConfig jsonConfig) {
return process(value);
}
private Object process(Object value) {
if (value == null) {
return "";
}else if(value instanceof oracle.sql.CLOB){
return ClobToString((CLOB) value);
}else{
return "";
}
}
private String ClobToString(CLOB clob){
String reString = "";
try{
Reader is = clob.getCharacterStream();// 得到流
BufferedReader br = new BufferedReader(is);
String s = br.readLine();
StringBuffer sb = new StringBuffer();
while (s != null) {// 执行循环将字符串全部取出付值给 StringBuffer由StringBuffer转成STRING
sb.append(s);
s = br.readLine();
}
reString = sb.toString();
}catch (Exception e){
e.printStackTrace();
}
return reString;
}
}
/**
* 注册json日期转换类
* @return
*/
public JsonConfig registerJsonTimestampProcessor(){
JsonConfig config = new JsonConfig();
config.registerJsonValueProcessor(Date.class,new TimestampJsonValueProcessor("yyyy-MM-dd HH:mm:ss"));
config.registerJsonValueProcessor(Timestamp.class,new TimestampJsonValueProcessor("yyyy-MM-dd HH:mm:ss"));
config.registerJsonValueProcessor(java.sql.Date.class,new TimestampJsonValueProcessor("yyyy-MM-dd HH:mm:ss"));
config.registerJsonValueProcessor(oracle.sql.CLOB.class,new LobJsonValueProcessor());
return config;
}
JSONArray nodes = JSONArray.fromObject(retNodes, this.registerJsonTimestampProcessor());