Convierta el objeto sql en una cadena Json válida en node.js – Azure

Estamos creando un servicio web en el servicio de Azure utilizando node.js para recuperar datos de la base de datos de SQL. Estamos usando ClearDB para hacer lo mismo.

Mientras se recuperan los datos, no vienen en un formato JSON adecuado. ¿Cómo podemos convertir el objeto sql resultante en una cadena JSON?

A continuación se muestra mi código.

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) ); }); }); }); 

No puedo manipular la cadena JSON la cadena que regresa es

 [{projectname: "Dominos"}] 

Intenté JSON.stringify pero no hubo suerte. Por favor, ayúdame a solucionar este problema

No necesitas JSON.stringify() realidad. results ya son su objeto javascript, que representa una matriz de objetos json. Solo usa

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

El objeto o la matriz de JavaScript es JSON, y necesita convertir una cadena JSON en un objeto de JavaScript a través de la función eval o JSON.parse . Consulte http://www.json.org/js.html .

La respuesta del servicio de SQL es JSON, como lo ha mostrado. Debe usar JSON.parse () para analizar el JSON en un objeto. Algo como:

 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 se utiliza para convertir un objeto en una cadena JSON. JSON.parse se utiliza para convertir una cadena JSON en un objeto.