Javascript 从nodejs应用程序接收JSON数据时出现问题?
下面的jQuery ajax方法调用node.js应用程序,返回json格式的数据。我检查了控制台,它以这种格式返回jsonJavascript 从nodejs应用程序接收JSON数据时出现问题?,javascript,jquery,ajax,json,node.js,Javascript,Jquery,Ajax,Json,Node.js,下面的jQuery ajax方法调用node.js应用程序,返回json格式的数据。我检查了控制台,它以这种格式返回json {“SQLDB_分配”:607,“SQLDB_池化”:285,“SQLDB_相关”:892,“SQLDB_TOTSERVERS”:19} 但是,当我尝试使用键名访问元素时,控制台上会显示“undefined” Nodejs res.send(JSON.stringify(" { \"SQLDB_ASSIGNED\": "+assigned_tot+", \"SQLDB_P
{“SQLDB_分配”:607,“SQLDB_池化”:285,“SQLDB_相关”:892,“SQLDB_TOTSERVERS”:19}
但是,当我尝试使用键名访问元素时,控制台上会显示“undefined”
Nodejs
res.send(JSON.stringify(" { \"SQLDB_ASSIGNED\": "+assigned_tot+", \"SQLDB_POOLED\":"+pooled_tot+", \"SQLDB_RELEVANT\":"+relevant_tot+", \"SQLDB_TOTSERVERS\":"+servertotal+"}"));
Jquery Ajax
$.ajax({
url: '/currentdata',
async: false,
dataType: 'json',
success: function (data) {
console.log(data);
for(var i in data)
{
console.log(data[i].SQLDB_ASSIGNED+"---"+data[i].SQLDB_POOLED+"---"+data[i].SQLDB_RELEVANT+"---"+data[i].SQLDB_TOTSERVERS );
}
}
});
我不知道为什么要迭代json的键。你想要这个:
console.log(data.SQLDB_ASSIGNED+"---"+data.SQLDB_POOLED+"---"+data.SQLDB_RELEVANT+"---"+data.SQLDB_TOTSERVERS );
因此,代码应该是:
$.ajax({
url: '/currentdata',
async: false,
dataType: 'json',
success: function (data) {
console.log(data.SQLDB_ASSIGNED+"---"+data.SQLDB_POOLED+"---"+data.SQLDB_RELEVANT+"---"+data.SQLDB_TOTSERVERS );
}
});
您似乎将数据变量视为包含指定键的对象数组。我想你想做的是:
for(var key in data) {
console.log(key+": "+data[key]);
}
还是什么?你的Node.js部分很奇怪。您正在串接字符串:
res.send(JSON.stringify(" { \"SQLDB_ASSIGNED\": "+assigned_tot+", \"SQLDB_POOLED\":"+pooled_tot+", \"SQLDB_RELEVANT\":"+relevant_tot+", \"SQLDB_TOTSERVERS\":"+servertotal+"}"));
为什么不仅仅是这个?这可能就是你想要的:
res.send(JSON.stringify({
SQLDB_ASSIGNED: assigned_tot,
SQLDB_POOLED: pooled_tot,
SQLDB_RELEVANT: relevant_tot,
SQLDB_TOTSERVERS: servertotal
}));
然后在回调中,只需执行以下操作:
data.SQLDB_ASSIGNED; // Here you go
数据不是数组。你为什么把它当作一个东西来绕圈子?如果是一个,为什么要使用for-in循环?