从API获取json:数组被解释为一个字符串

时间:2017-01-30 14:17:42

标签: javascript jquery

我从API(由我编写)得到了这个答案:

[[new Date(2017,0,28,16,00,00),[0.201766,0.201766,0.201766],[0.309878,0.309878,0.309878],[0.287467,0.287467,0.287467],[null,null,null], ...

我希望我的观点将此答案解释为javascript,但它并不是。它假定它是一个字符串。

$.getJSON('http://localhost:XXXX/...', function (data) {

    // data.jsAlignedData == [[new Date(2017,0,28,16,00,00),[0.201766,0.201766,0.201766], ...

    console.log(data.jsAlignedData);
    // Shows it as a string

    var test = JSON.parse(data.jsAlignedData);
    // Error: Unexpected token e in JSON at position 3 
    // (IMO it's the 'e' from 'new')

    // it doesn't even reach this point:
    console.log(test);          
}

最终目标是使用原生数组构建Dygraphs图以提高速度(参见"原生数组"在documentation中)。

1 个答案:

答案 0 :(得分:1)

您必须使用JSON标准(例如,请参阅https://en.wikipedia.org/wiki/ISO_8601)进行序列化,以便能够使用JSON.parse()对其进行解析。

编辑:" JSON标准"对于日期 type 是不准确的,因为您必须在解析后将日期字符串解释为JS日期...(如@charlietfl评论中所述)