標籤:.text nts reflect util nconf 請求 .json 問題 roc
ajax請求json資料異常:nested exception is net.sf.json.JSONException: java.lang.reflect.InvocationTargetException] with root cause1.異常原因:所請求的json資料中包含java.util.date資料類型,但是在後台並沒有將其格式轉換2.解決方案:添加工具類DateJsonValueProcessor
import java.text.SimpleDateFormat;import net.sf.json.JsonConfig;import net.sf.json.processors.JsonValueProcessor;public class DateJsonValueProcessor implements JsonValueProcessor{ private String format; public DateJsonValueProcessor(String format) { this.format = format; } public Object processArrayValue(Object value, JsonConfig jsonConfig) { return null; } public Object processObjectValue(String key, Object value, JsonConfig jsonConfig) { if (value == null) { return ""; } if (value instanceof java.sql.Timestamp) { String str = new SimpleDateFormat(format) .format((java.sql.Timestamp) value); return str; } if (value instanceof java.util.Date) { String str = new SimpleDateFormat(format) .format((java.util.Date) value); return str; } return value.toString(); }}3.然後在你的controller中寫入
JsonConfig cfg = new JsonConfig(); cfg.registerJsonValueProcessor(java.util.Date.class,new DateJsonValueProcessor("yyyy-MM-dd")); JSONArray json = JSONArray.fromObject(users, cfg);
@RequestMapping("/getAllJsonUser") public void getAllJsonUser(HttpServletResponse response){ List<User> users = userService.listAll(); System.out.println(users); JsonConfig cfg = new JsonConfig(); cfg.registerJsonValueProcessor(java.util.Date.class,new DateJsonValueProcessor("yyyy-MM-dd")); JSONArray json = JSONArray.fromObject(users, cfg); JsonUtils.ajaxJson(json.toString(), response); }
ok,問題解決
ajax請求json資料異常:nested exception is net.sf.json.JSONException: java.lang.reflect.InvocationTargetException] with root cause