我有一个json文件,其中包含日期(对象)的信息,但我无法格式化文件以便正确提取信息。
JSON文件:
[
{
"date": "new Date(1430539204557)",
"score": 0
},
{
"date": "new Date(1431144004557)",
"score": 0
},
{
"date": "new Date(1431748804557)",
"score": 0
}
]
即使这通过了json验证,但是当我在我的页面中显示这些数据时 - 而不是2015年9月到2015年10月 - 它显示了"新日期(1431748804557)"。我提取日期数据错了吗?
this.dateDisplay = this.data.map(item => item.date);
答案 0 :(得分:1)
如果要获取每个[date]值,可能需要使用eval()
(这是不安全的)将这些值作为“方法”或“实例化新的Date类”来提供。
var aData = [
{
"date": "new Date(1430539204557)",
"score": 0
},
{
"date": "new Date(1431144004557)",
"score": 0
},
{
"date": "new Date(1431748804557)",
"score": 0
}
];
aData.forEach(function(oProperty) {
var oDate = eval(oProperty.date);
console.log(oDate); // Sat May 02 2015 12:00:04 GMT+0800 (PHT)
});
虽然将[date]值作为实际日期值返回会更好。希望这对您的情况有所帮助。
答案 1 :(得分:0)
答案 2 :(得分:-1)
您应该删除日期值的双引号。 示例代码生成用于处理的json文件: https://jsfiddle.net/2epL7b6d/
var str = [{
"date": new Date(1430539204557),
"score": 0
},
{
"date": new Date(1430539204557),
"score": 0
},
{
"date": new Date(1430539204557),
"score": 0
}];
var fileStr = JSON.stringify(str);
console.log(fileStr);
saveFile('yourfilename.json', "data:application/json", new Blob([fileStr],{type:""}));
function saveFile (name, type, data) {
if (data != null && navigator.msSaveBlob)
return navigator.msSaveBlob(new Blob([data], { type: type }), name);
var a = $("<a style='display: none;'/>");
var url = window.URL.createObjectURL(new Blob([data], {type: type}));
a.attr("href", url);
a.attr("download", name);
$("body").append(a);
a[0].click();
setTimeout(function(){ // fixes firefox html removal bug
window.URL.revokeObjectURL(url);
a.remove();
}, 500);
}