正在尝试使用驱动程序通过Node从sql server 2008中获取数据。我以某种方式可以成功获取数据。我的问题是如何以Json格式显示它。

我的代码是这样的:

execSql("select * from tblStudent", function (err,rows) {

        console.log("City_StrCode:"  + rows[0].value);
        console.log("State_StrCode:"  + rows[1].value);
        console.log("City_StrName:" + rows[2].value);


});


现在,查询数据库后我的结果是这样的:

City_StrCode:0005
State_StrCode:ORS
City_StrName:Ratnagiri12
City_StrCode:1002
State_StrCode:78899
City_StrName:thousandtwo
City_StrCode:1010
State_StrCode:1001
City_StrName:U FOOL34
Status:true
City_StrCode:105
State_StrCode:001
City_StrName:dgrt12
City_StrCode:1789
State_StrCode:001
City_StrName:XZAS12


给我一些建议...

最佳答案

JSON stringify具有用于修饰和缩进的arg。这将打印并缩进每个2级空格。

console.log(JSON.stringify(myObject, null, 2);


所以这:

var obj = ['one', 'two', {a:1, b:2}];
console.log(JSON.stringify(obj, null, 2));


输出:

[
  "one",
  "two",
  {
    "a": 1,
    "b": 2
  }
]


如果原始对象包含的数据超出了您的期望,或者您希望具有选择性,或者您希望控制如何构建要输出的JSON obj,则可以将数据复制到新对象中,然后漂亮地打印出来。还请注意,您的SQL结果集是平坦的,因此在循环时进行修改可以将其构建到对象中。就像是 ...

execSql("select * from tblStudent", function (err,rows) {
    for (i=0; i<rows.length; i++) {
        var output;
        var fieldNum = i % 3;

        switch (fieldNum){
           case 0:
               output = {};
               output.cityCode = rows[i].value;
               break;
           case 1:
               output.stateCode = rows[i].value;
               break;
           case 2:
               output.stateName = rows[i].value;
               console.log(output, null, 2);
               break;
        }
    }


});

关于javascript - 如何在 Node 中以json格式显示行内容?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17189803/

10-12 06:49
查看更多