Javascript 从nodejs应用程序接收JSON数据时出现问题?

Javascript 从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

下面的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_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循环?