无法解析nodejs中api中的JSON数据
Can't parse JSON data from api in nodejs
我正在努力使这个工作,但我不知道为什么它不工作。
//require the poloniex library
var plnx;
var currenciesJSON;
if (plnx = require('plnx')){
console.log("Poloniex library intialized.");
}
//
a = 0;
setInterval(function() { intervalFunction() }, 1000);
function intervalFunction(){
plnx.returnCurrencies({}, function(err, data) {
currenciesJSON = data;
console.log(err);
console.log(currenciesJSON);
});
var currenciesOBJ = JSON.parse(currenciesJSON);
a++;
console.log("Check #"+a+" complete.");
}
我得到以下错误:
[nodemon] starting `node main.js`
Poloniex library intialized.
undefined:1
undefined
^
SyntaxError: Unexpected token u
at Object.parse (native)
at intervalFunction (E:'CODING'nodejs'main.js:22:28)
at null.<anonymous> (E:'CODING'nodejs'main.js:10:26)
at wrapper [as _onTimeout] (timers.js:265:14)
at Timer.listOnTimeout (timers.js:110:15)
[nodemon] app crashed - waiting for file changes before starting...
您正在尝试在分配变量之前解析它的值。plnx.returnCurrencies()
是异步的,所以
var currenciesOBJ = JSON.parse(currenciesJSON)
将(最初)等同于
var currenciesOBJ = JSON.parse(undefined)
将等价于(由于类型强制转换)
var currenciesOBJ = JSON.parse('undefined')
因此关于字符'u'
这可能只是一个问题,直到plnx.returnCurrencies()
回调被调用至少一次,因为currenciesJSON
将被定义。
相关文章:
- 如何更改bigquery API中的计费层选项
- 可扩展的画布作为Google Maps Javascript API中的覆盖
- 使用Soundcloud API中的令牌保持登录状态
- 删除Google Calander API中的事件
- 文件API中的Javascript变量范围
- 用于Javascript的Skydrive API中的回调URL
- Slick.js不适用于Google Maps API中的infoBox.js
- 从谷歌地图Api中的区域名称获取坐标
- 转换Web音频API中的采样率
- 检测YouTube API中的事件源
- parse.com javascript地理查询api中的withinFile错误
- Google可视化API中的逗号分隔数据
- 在商店定位器谷歌地图api中的商店面板中添加新字段
- 将API中的数据插入到DOM中
- 禁用youtube javascript api中的自动播放
- 谷歌地图 API 中的存储标记和中心地图
- Google 地图 API 中的特定自动完成类型
- JavaScript ScreenLeap API 中的强制数据错误
- 强循环 API 中的时区
- 多个事件,用于触发 Chrome 书签 API 中的单个函数