我已修改 WebAPI JSON.Net 序列化以使用 JavaScriptDateTimeConverter。计划是获取 jscript 日期对象而不是 ISO 8601 格式的字符串。但不幸的是,当我像这样使用 jquery 发布请求时:
$.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 给了我这个信息: SyntaxError: JSON.parse: unexpected keyword return window.JSON.parse(data); 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"
所以它确实按照要求格式化了我的日期,但后来在解析时失败了。
任何想法如何实现我想要的?
ps 这就是我在 global.asax(asp.net 网络表单)中的做法:
var formatters = GlobalConfiguration.Configuration.Formatters;
var jsonFormatter = formatters.JsonFormatter;
var settings = jsonFormatter.SerializerSettings;
settings.Converters.Add(new JavaScriptDateTimeConverter());