Javascript Can';t在nodejs中解析来自api的JSON数据

Javascript Can';t在nodejs中解析来自api的JSON数据,javascript,json,node.js,Javascript,Json,Node.js,我正试图让它工作,但我现在不知道为什么它不工作 //需要poloniex库 var-plnx; var currenciesJSON; if(plnx=require('plnx')){ log(“Poloniex库初始化”); } // a=0; setInterval(function(){intervalFunction()},1000); 函数间隔函数(){ 返回货币({},函数(err,data){ currenciesJSON=数据; 控制台日志(err); log(currenc

我正试图让它工作,但我现在不知道为什么它不工作

//需要poloniex库
var-plnx;
var currenciesJSON;
if(plnx=require('plnx')){
log(“Poloniex库初始化”);
}
//
a=0;
setInterval(function(){intervalFunction()},1000);
函数间隔函数(){
返回货币({},函数(err,data){
currenciesJSON=数据;
控制台日志(err);
log(currenciesJSON);
});
var currenciesOBJ=JSON.parse(currenciesJSON);
a++;
日志(“检查#”+a+“完成”);

}
您试图在赋值之前解析变量的值
plnx.returnCurrencies()
是异步的,因此

var currenciesOBJ = JSON.parse(currenciesJSON)
将(最初)等同于

var currenciesOBJ = JSON.parse(undefined)
相当于(由于类型强制)

因此,字符
'u'


只有在调用
plnx.returnCurrencies()
回调至少一次之后,这才可能成为问题,因为此时将定义
currencesJSON

您收到的Json有效吗?获取结果console.log(currenciesJSON)并放入www.jsonlint.com进行验证。您的
currenciesJSON
似乎包含无效的JSON字符串。currenciesJSON可能未定义,因为其值是在异步回调中设置的。把你的
currenciesbj=JSON.parse(currenciesJSON)放进去;a++;console.log(…)
在回调中。您是否也验证了回调中的
typeof data==='string'
?很可能它已经是一个对象,因此不需要解析。
var currenciesOBJ = JSON.parse('undefined')