正确格式化/提取包含日期对象的JSON
我有一个json文件,其中包含日期(对象)的信息,但为了正确提取信息,我无法格式化该文件 JSON文件:正确格式化/提取包含日期对象的JSON,json,Json,我有一个json文件,其中包含日期(对象)的信息,但为了正确提取信息,我无法格式化该文件 JSON文件: [ { "date": "new Date(1430539204557)", "score": 0 }, { "date": "new Date(1431144004557)", "score": 0 }, { "date": "new Date(1431748804557)", "score": 0 } ] 尽管这通
[
{
"date": "new Date(1430539204557)",
"score": 0
},
{
"date": "new Date(1431144004557)",
"score": 0
},
{
"date": "new Date(1431748804557)",
"score": 0
}
]
尽管这通过了json验证,但当我在页面中显示此数据时,它显示的是“新日期(1431748804557)”,而不是2015年9月到2015年10月。我提取的日期数据是否错误
this.dateDisplay = this.data.map(item => item.date);
应该删除日期值的双引号。 生成用于处理的json文件的示例代码:
var str=[{
“日期”:新日期(1430539204557),
“分数”:0
},
{
“日期”:新日期(1430539204557),
“分数”:0
},
{
“日期”:新日期(1430539204557),
“分数”:0
}];
var fileStr=JSON.stringify(str);
log(fileStr);
saveFile('yourfilename.json','data:application/json',新Blob([fileStr],{type:'}));
函数saveFile(名称、类型、数据){
if(data!=null&&navigator.msSaveBlob)
返回navigator.msSaveBlob(新Blob([data],{type:type}),name);
变量a=$(“”);
var url=window.url.createObjectURL(新Blob([data],{type:type}));
a、 attr(“href”,url);
a、 attr(“下载”,名称);
$(“正文”)。附加(a);
a[0]。单击();
setTimeout(function(){//修复了firefox html删除错误
window.URL.revokeObjectURL(URL);
a、 删除();
}, 500);
}
您应该删除日期值的双引号。
生成用于处理的json文件的示例代码:
var str=[{
“日期”:新日期(1430539204557),
“分数”:0
},
{
“日期”:新日期(1430539204557),
“分数”:0
},
{
“日期”:新日期(1430539204557),
“分数”:0
}];
var fileStr=JSON.stringify(str);
log(fileStr);
saveFile('yourfilename.json','data:application/json',新Blob([fileStr],{type:'}));
函数saveFile(名称、类型、数据){
if(data!=null&&navigator.msSaveBlob)
返回navigator.msSaveBlob(新Blob([data],{type:type}),name);
变量a=$(“”);
var url=window.url.createObjectURL(新Blob([data],{type:type}));
a、 attr(“href”,url);
a、 attr(“下载”,名称);
$(“正文”)。附加(a);
a[0]。单击();
setTimeout(function(){//修复了firefox html删除错误
window.URL.revokeObjectURL(URL);
a、 删除();
}, 500);
}
如果要获取每个[date]值,可能需要使用eval()
(这不安全)将这些值用作“方法”或“实例化新的日期类”
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]值作为实际日期值返回会更好。希望这对您的情况有所帮助。如果您想获得每个[date]值,您可能需要使用
eval()
(这不安全)将这些值作为“方法”或“实例化新的日期类”来使用
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]值作为实际日期值返回会更好。希望这对您的情况有所帮助。一些观察结果:
- 根据OP,
的行为就像一个字符串,而不是一个对象newdate(xxxxxxxxxx)
- 在
中,只需传递JSON
纪元时间(UNIX时间),然后在解析
时创建日期李>JSON
一些观察结果:
- 根据OP,
的行为就像一个字符串,而不是一个对象newdate(xxxxxxxxxx)
- 在
中,只需传递JSON
纪元时间(UNIX时间),然后在解析
时创建日期李>JSON
我已经尝试过了,但是json验证器返回一个错误,说明
需要'STRING','NUMBER','NULL','TRUE','FALSE','{','undefined','got'undefined'
仍然没有通过验证-需要'EOF','}',':','undefined','undefined','got'undefined'
用示例代码编辑了我的答案。如果你接受我的答案,请点击勾号。谢谢。我已经试过了,但是json验证器返回了一个错误,说明应该是'STRING','NUMBER','NULL','TRUE','FALSE','{','undefined','got'undefined'
仍然没有通过验证-应该是'EOF','}',':','undefined','undefined'
用示例代码编辑了我的答案。如果你接受我的答案,请点击勾号。谢谢。@Andrius我在那篇文章中没有找到任何建议答案,我的代码也无法使用。@Andrius只是没有按标题去看,试着去理解用例……两者都很不同。@bluePearl你检查过我的答案了吗?@Andrius我在那篇文章中没有找到任何建议答案帖子。@Andrius只是不按标题看,试着理解用例……两者都很不同。@bluePearl你检查过我的答案了吗?添加eval()
不是最安全的选择;)是的,这就是为什么我会这样说:“虽然如果你返回[date]值作为实际日期值会更好。”在你的回答中添加了关于eval()的注释接受它,我将能够删除我的反对票;如果我使用eval(),我是否可以具体说明日期的显示方式,如:2017年5月
而不是详细的返回?在我回答您的问题之前,首先如何获取json文件?添加eval()
不是最安全的选择;)是的,这就是为什么我会这样说:“虽然如果你返回[date]值作为实际日期值会更好。”在你的回答中添加了关于eval()的注释接受它,我将能够删除我的反对票;如果我使用eval()的话,我是否可以得到具体的日期显示方式,比如:2017年5月
,而不是详细的返回?在我回答您的问题之前,您首先如何获得json文件?