UPDATE:这个答案可能并不适合所有情况。看JD的回答 https://stackoverflow.com/a/26411466/1961413寻求一个可能更好的优雅解决方案。
你可以“修复”输出JavaScriptSerializer
在 .Net 方面:
JavaScriptSerializer serializer = new JavaScriptSerializer();
var json = serializer.Serialize(this);
json = Regex.Replace(json,@"\""\\/Date\((-?\d+)\)\\/\""","new Date($1)");
return json;
这将会改变
EffectiveFrom: "/Date(1355496152000)/"
to
EffectiveFrom: new Date(1355496152000)
Javascript 可以直接使用
编辑:更新以适应负日期
编辑:这是 VB 人员的正则表达式行:
json = Regex.Replace(json, """\\/Date\((-?\d+)\)\\/""", "new Date($1)")
2016.11.20 更新:随着我身后的 javascript/json 中有更多的日期时间处理,我建议将正则表达式更改为简单的内容
json = Regex.Replace(json,@"\""\\/Date\((-?\d+)\)\\/\""","$1");
结果值是有效的 JSON,并且可以在 javascript 端转换为 Date 对象。
还值得注意的是 moment.js (http://momentjs.com/docs/#/parsing/ http://momentjs.com/docs/#/parsing/)可以愉快地处理这种格式。
moment("/Date(1198908717056-0700)/");