基于 OP 中的评论阐述,我将使用 Json.stringify 的第二个参数,即所谓的“替换器”。像这样的东西:
require(['dojo/json'], function(Json) {
function replacer(key, value) {
if ('string' === typeof (value)) {
var d = new Date(value);
if (isNaN(d.getTime())) {
return value; // string, but not a date
}
// do whatever you want to do, this is just an example
d.setSeconds(0);
return d.toJSON();
}
return value;
}
var data = {'a':new Date(), 'b':123, 'c':'foo', 'd':[new Date()]};
var str = Json.stringify(data, replacer);
console.log(str);
});
我建议将其编写为 dojo/request 的 mixin,然后为自己创建一个具有此行为的自定义请求类,然后根据需要使用该自定义请求对象。
这感觉很骇人听闻,但我认为它会满足您的需求(据我了解!)。