0
我嘗試從URL獲取JSON數據並將值推入函數。 所有JSON值都用引號括起來,以使其具有適當的JSON格式。但事實上並非所有值都是字符串。JSON返回數據中的日期對象作爲字符串對待
這裏是一個JSON樣本:
table = [
{
'date1': 'new Date(2015,13,1)',
'content': 'this is the content'
},
{
'date1': 'new Date(2015,13,2)',
'content': 'this is the contentB'
}
];
將文件加載這樣的:
var req = new XMLHttpRequest();
var url = "http://localhost/json-test";
req.onreadystatechange = function() {
if (req.readyState == 4 && req.status == 200) {
var myData = JSON.parse(req.responseText);
drawFunction(myData);
}
}
req.open("GET", url, true);
req.send();
function drawFunction(myData) {
doSomething();
}
這工作 - 但「新日」的值(當然)也作爲字符串返回。 我該如何轉換它們? 該函數應使用的值是這樣的:
table = [
{
'date1': new Date(2015,13,1), //as new Date - not as string - without quotes
'content': 'this is the content'
},
{
'date1': new Date(2015,13,2),
'content': 'this is the contentB'
} ];
我可能會做這完全錯了。任何暗示將不勝感激。 無法更改JSON源文件。
你應該考慮發送一個Unix時間戳,而不是試圖發送一個完整的日期對象。 – JJJ
我同意@Juhana,或發送月,日,年的價值,並在客戶端構建它們。 – Beartums
JSON是數據的*字符串表示*。它的值只能是字符串,數字,布爾值或空值。 (請參閱:http://json.org/)您需要自己將日期「轉換」爲「日期」對象。您應該將日期存儲爲時間戳,然後循環數據以在值上調用「新日期」。 –