2013-06-19 36 views
1

正試圖通過節點使用驅動程序從sql server 2008中獲取數據。不知何故,我可以成功地獲取數據..我的問題是如何以Json格式顯示它。如何在節點中以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 

推薦我的東西......

+0

什麼手段「節點使用驅動程序「?你從哪裏得到execSql? 「json格式」是什麼意思?如果行是一個數組,它是一個有效的格式,你可以迭代該數組... – hereandnow78

+0

我正在使用繁瑣的驅動程序來連接sql與節點。 – Aarthi

+0

在我的SQL它是像表名格式的代碼,它有一定數量的記錄。我需要使用json類型來分別顯示那條記錄。 – Aarthi

回答

4

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


}); 
+0

它正確地工作..非常感謝你.. – Aarthi

+0

@Aarthi - 我編輯和編輯的另一個選項,如果你想控制輸出的東西,將sql結果集放到一個自定義的JSON obj中。 – bryanmac

+0

它給出了每行JSON格式的結果。 – Aarthi

2
,如果你想每一行註銷作爲單個對象

做這樣的

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

    rows.forEach(function (row) { 
     console.log(row); 
    }); 

}); 

或格式化像bryanmac建議:

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

    rows.forEach(function (row) { 
     console.log(JSON.stringify(row, null, 2)); 
    }); 

}); 
+0

第一種方法適用於我。但它包含元數據本身.. – Aarthi

+0

非常感謝... – Aarthi