解决方案:
先要自定义一个Date格式
package cd.localhost.util;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import net.sf.json.JsonConfig;
import net.sf.json.processors.JsonValueProcessor;
/**
* d定义一个转json的时间格式
* @author 铭
*
*/
public class DateValueToJson implements JsonValueProcessor {
//定义日期格式
private String pattern ="yyyy-MM-dd";
public Object processArrayValue(Object arg0, JsonConfig arg1) {
return process(arg0);
}
public Object processObjectValue(String arg0, Object arg1, JsonConfig arg2) {
// TODO Auto-generated method stub
return process(arg1);
}
private Object process(Object value) {
if (value instanceof Date) {
SimpleDateFormat sdf = new SimpleDateFormat(pattern,Locale.UK);
return sdf.format(value);
}
return value==null? "" :value.toString();
}
}
**************************************************************************************************************************
然后就可将date类型正常转入json 例如以下代码:
//使用第三方工具将map转为json
Map<String, Object> map= new LinkedHashMap<String, Object>();
map.put("total", page.getAllRecordNo());
map.put("rows", page.getEmplist());
//定义日期格式
JsonConfig config = new JsonConfig();
DateValueToJson dvtj = new DateValueToJson();
config.registerJsonValueProcessor(Date.class, dvtj);
JSONArray jsonArray = JSONArray.fromObject(map, config); //这里我是将一个map转为json
String javaJson=jsonArray.toString();
//去除两边的花括号
javaJson=javaJson.substring(1, javaJson.length()-1);
System.out.println(javaJson);