将sql对象转换为node.js中有效的Jsonstring – Azure

我们使用node.js在Azure服务中创build一个Web服务,以从SQL数据库中检索数据。 我们使用ClearDB来做同样的事情。

在回顾数据时,它没有以合适的JSON格式提交。 我们如何将结果sql对象转换为JSONstring。

以下是我的代码。

app.get('/android', function(request, response) { pool.getConnection(function(err, connection) { if(err) { handleErrorResponse(err, response); return; } var sql = "select projectname from taggedemployee where empname='test@hotmail.com' and tagflag='accepted'" connection.query(sql, {}, function(err, results) { connection.release(); // always put connection back in pool after last query if(err) { handleErrorResponse(err, response); return; } var proj = JSON.stringify(results); console.log(proj); console.log(proj[0].projectname); for(var myKey in proj) { console.log("key:"+ myKey+", value:"+proj[myKey]); } response.setHeader('Content-Type', 'application/json'); response.status(200).send(JSON.stringify(results) ); }); }); }); 

我不能操纵返回的string是JSONstring

 [{projectname: "Dominos"}] 

我试过JSON.stringify但没有运气。 请帮我解决这个问题

实际上你不需要JSON.stringify()results已经是你的javascript对象,它代表了json对象的数组。 只是使用

 console.log(results[0].projectname); 

JavaScript对象或数组是JSON,您需要通过函数evalJSON.parse将JSONstring转换为JavaScript对象。 请参考http://www.json.org/js.html

如您所示,来自SQL服务的响应是JSON。 您需要使用JSON.parse()将JSONparsing为对象。 就像是:

 app.get('/android', function(request, response) { pool.getConnection(function(err, connection) { if(err) { handleErrorResponse(err, response); return; } var sql = "select projectname from taggedemployee where empname='test@hotmail.com' and tagflag='accepted'" connection.query(sql, {}, function(err, results) { connection.release(); // always put connection back in pool after last query if(err) { handleErrorResponse(err, response); return; } var proj = JSON.parse(response); console.log(proj); response.setHeader('Content-Type', 'application/json'); response.status(200).send(results); }); }); }); 

JSON.stringify用于将对象转换为JSONstring。 JSON.parse用于将JSONstring转换为对象。