我正在使用jQuery 在Ajax上进行第一次破解.我将数据放到我的页面上,但是我在为Date数据类型返回的JSON数据方面遇到了一些麻烦.基本上,我得到的字符串看起来像这样:
/Date(1224043200000)/
Run Code Online (Sandbox Code Playgroud)
从全新的人到JSON - 如何将其格式化为短日期格式?这应该在jQuery代码中的某个地方处理吗?我试过使用jQuery.UI.datepicker插件$.datepicker.formatDate()没有任何成功.
仅供参考:以下是我提出的解决方案:
function getMismatch(id) {
$.getJSON("Main.aspx?Callback=GetMismatch",
{ MismatchId: id },
function (result) {
$("#AuthMerchId").text(result.AuthorizationMerchantId);
$("#SttlMerchId").text(result.SettlementMerchantId);
$("#CreateDate").text(formatJSONDate(Date(result.AppendDts)));
$("#ExpireDate").text(formatJSONDate(Date(result.ExpiresDts)));
$("#LastUpdate").text(formatJSONDate(Date(result.LastUpdateDts)));
$("#LastUpdatedBy").text(result.LastUpdateNt);
$("#ProcessIn").text(result.ProcessIn);
}
);
return false;
}
function formatJSONDate(jsonDate) {
var newDate = dateFormat(jsonDate, "mm/dd/yyyy");
return newDate;
}
Run Code Online (Sandbox Code Playgroud)
此解决方案从回调方法获取我的对象,并使用日期格式库正确显示页面上的日期.
我有一个Date对象.如何呈现title以下代码段的部分?
<abbr title="2010-04-02T14:12:07">A couple days ago</abbr>
Run Code Online (Sandbox Code Playgroud)
我有另一个图书馆的"相对时间的单词"部分.
我尝试过以下方法:
function isoDate(msSinceEpoch) {
var d = new Date(msSinceEpoch);
return d.getUTCFullYear() + '-' + (d.getUTCMonth() + 1) + '-' + d.getUTCDate() + 'T' +
d.getUTCHours() + ':' + d.getUTCMinutes() + ':' + d.getUTCSeconds();
}
Run Code Online (Sandbox Code Playgroud)
但这给了我:
"2010-4-2T3:19"
Run Code Online (Sandbox Code Playgroud) 在使用MVC 4的新单页应用程序工具时,我注意到我找到的所有示例都没有包含通过WebApi更新的DateTime示例.我很快发现了原因.
我首先从提供的模板生成标准SPA.然后我打开了TodoItem.cs并添加了DateTime字段.然后我按照评论的指示生成了控制器.(没有datetime字段,一切正常).
生成所有内容后,我启动了应用程序并导航到控制器索引(我称之为控制器"任务").我按预期获得了0个记录的网格页面并单击了添加按钮.我按预期被带到了编辑页面并输入了一些数据,包括我闪亮的新日期时间字段中的日期.然后点击保存.
产生了一个错误:
服务器错误:HTTP状态代码:500,消息:反序列化System.Web.Http.Data.ChangeSetEntry []类型的对象时出错.DateTime内容'01/01/2012'不以'/ Date('和以')/'结尾,如JSON所要求的那样.
看起来工具还不支持DateTime.我确信我可以花一些时间来搞清楚并让它发挥作用,但我想我可能会在这里找到一些运气,因为已经解决了这个问题且可以提供洞察力的人.
有人已经在争吵吗?
更新:我提出了自问这个以来我发现的更多信息.我尝试使用JSON.Net作为我的Formatter,如下所示.我认为这将是最终的解决方案,但是,正如下面推荐的海报还不够.
使用JSON.Net序列化程序时,我收到以下错误:
此DataController不支持实体'JObject'的操作'Update'.
原因是JSON.Net没有完全填充格式化程序试图取消规划的对象(System.Web.Http.Data.ChangeSet).
发送的json是:
[{"Id":"0",
"Operation":2,
"Entity":
{"__type":"TodoItem:#SPADateProblem.Models",
"CreatedDate":"/Date(1325397600000-0600)/",
"IsDone":false,
"Title":"Blah",
"TodoItemId":1},
"OriginalEntity":
{"__type":"TodoItem:#SPADateProblem.Models",
"CreatedDate":"/Date(1325397600000-0600)/",
"IsDone":false,
"Title":"Blah",
"TodoItemId":1}
}]
Run Code Online (Sandbox Code Playgroud)
内置的Json Formatter能够将此Json重构为ChangeSet对象,并在Entity和OriginalEntity字段中嵌入TodoItem对象.
有没有人得到JSON.Net来正确反序列化?