如何从server_JS获取client_JS上的JSON数组?

从nodeJS(与Express)我尝试发送JSON_array响应客户端JS:

asksJsonArray = JSON.parse(fs.readFileSync("tasks.json", 'utf-8')); app.get('/getArr', function (req, res) { readJsonContent(); res.json(JSON.stringify(TasksJsonArray)); //sending JSON array to client_JS in response }); 

在客户端,我想得到它,但没有收到:

 $.get('/getArr').success(function(res) { var currencyData = JSON.parse(res); if (!currencyData.rates) { // possibly handle error condition with unrecognized JSON response alert("currency data not found!"); } else { taskArr = currencyData; } }) 

所以我总是收到味精的货币数据没有find! …

res.json已经将数据转换为JSON,所以你不必手动执行:

 res.json(TasksJsonArray); 

我相信这也将设置适当的标题,所以在客户端,你不必明确parsingJSON,jQuery将为你做:

 $.get('/getArr').done(function(currencyData){ if (!currencyData.rates) { // possibly handle error condition with unrecognized JSON response alert("currency data not found!"); } else { taskArr = currencyData; } }); 

请注意,将响应分配给一个自由variables并不是很有用,因为您不知道何时访问该variables是“安全的”。 您可能想看看如何从asynchronous调用返回响应? 。

这可能仍然不起作用,因为currencyData可能是一个没有rates属性的值。 要了解如何正确访问数据,请查看访问/进程(嵌套)对象,数组或JSON 。

改变res.json(JSON.stringify(TasksJsonArray)); res.send(JSON.stringify(TasksJsonArray));