Convert sql object to valid Json string in node.js - Azure

12,867

Solution 1

You don't need JSON.stringify() actually. results is already your javascript object, which represents array of json objects. Just use

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

Solution 2

The JavaScript Object or Array is JSON, and you need to convert a JSON string to a JavaScript Object thru the function eval or JSON.parse. Please refer to http://www.json.org/js.html.

Solution 3

The response from the SQL service is JSON - as you have shown. You need to use JSON.parse() to parse the JSON into an object. Something like:

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='[email protected]' 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 is used to convert an object into a JSON string. JSON.parse is used to convert a JSON string into an object.

Share:
12,867
Sniper
Author by

Sniper

Updated on June 29, 2022

Comments

  • Sniper
    Sniper almost 2 years

    We are creating a web service in Azure service using node.js to retrieve data from SQL db. We are using ClearDB to do the same.

    While retriving the data its not comming in a proper JSON format. How can we convert the result sql object to JSON string.

    Below is my code.

    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='[email protected]' 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) );
    
            });
        });
    });
    

    I cant manipulate the JSON string the returning string is

    [{projectname: "Dominos"}]
    

    I tried JSON.stringify but no luck. Please help me to fix this issue