我修改了WebAPI JSON.Net序列化以使用JavaScriptDateTimeConverter。該計劃是獲得jscript日期對象而不是ISO 8601格式化字符串。但不幸的是帖子的時候我做的請求,像這樣的jQuery:在WebAPI中修改JSON.NET
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "#UrlToService",
dataType: "json",
data: JSON.stringify(args),
success: function (data) {
callSucceeded(data);
},
error: function (jqXHR, textStatus, errorThrown) {
BJ.GenericWebAPIFailMethod(jqXHR);
}
});
錯誤:輸入,textStatus是parseerror和errorThrown是給我這個信息: 語法錯誤:JSON.parse:意外的關鍵字 回報window.JSON。解析(數據); jQuery的1.7.2.js(線564)我返回的JSON對象的
部分看起來像:
"CreatedOn": Date {Thu Jul 25 2013 12:54:36 GMT+0200 (Central Europe Standard Time)}
"DisplayName": "Toronto, ON, Canada"
"Description": "12:54"
所以這的確是我的格式化日期的要求,但失敗以後解析。
任何想法如何實現我想要的?
p.s.這是我怎麼做的,在Global.asax中(asp.net web表單):
var formatters = GlobalConfiguration.Configuration.Formatters;
var jsonFormatter = formatters.JsonFormatter;
var settings = jsonFormatter.SerializerSettings;
settings.Converters.Add(new JavaScriptDateTimeConverter());
爲什麼你需要/想在你的Web API中使用'JavaScriptDateTimeConverter'?如果你把它作爲一個ISO 8601日期,那麼在jQuery反序列化響應之後,你可以簡單地通過'var date = new Date(data.CreatedOn);'將日期字符串轉換爲一個Date對象。 –
問題在於我們之前使用過Web方法,現在我們正在將該代碼移至WebAPI。所以我將不得不手動更改大量的jscript代碼。 – pajics
在您轉移到Web API之前,您的舊Web方法格式的日期是如何的? –