2013-05-20 62 views
0

傳遞解析的JSON通過jqGrid變量時,我遇到了一個小問題。 我正在查詢一個MS Access .mdb文件。問題是ID字段是MS Access中的自動編號整數字段,查詢時沒有引號。 jqGrid不喜歡這個,這就是爲什麼它沒有在表中顯示ID值。JSON對象中缺少引號。如何添加它們?

var SQL = "SELECT * FROM test"; 
var resultSet = myDB.query(SQL); 
// resultSet will yield [{"ID":1,"name":"albert","9999999999"},{"ID":2,"name":"peter","8888888888"}] 
var mydata = JSON.parse(resultSet) 

注意上面的內容resultSet如何在ID值上沒有引號,但其餘的都是這樣。這導致ID列中沒有值的表格。在通過JSON解析之前,如何在ID值中添加引號?

謝謝。

enter image description here 整個代碼.. enter image description here

+0

你得到一個JSON字符串返回或JavaScript數據結構? –

+0

是的它是在JSON結構中,但是當涉及到數字和整數時,它沒有引號。除非值有引號,否則jqGrid不會顯示。 –

+0

我意識到這不會回答你的問題,但JSON中的數字不能被引用_;如果他們是,他們是字符串。 –

回答

1

jqGrid可以完全像字符串一樣使用整數。所以你不需要把數字改成字符串。您在上一個問題中發佈的JSON包含id而不是ID。 JavaScript是區分大小寫的語言。我想,你會看到在id列中的值,如果你更換

{name:'ID',index:'ID', width:60, sortable:false}, 

{name:'id', width:60, sortable:false}, 

此外,我建議你從comModel刪除index財產。

+0

我是一個這樣的虛擬!非常感謝你指出! –

+0

@ like-a-trainee:Everybody犯錯誤,歡迎您! – Oleg

0
for (item in resultSet[0]){ 
    if (typeof(item) === "number"){ 
     item = " + item "; 
    } 
} 

未經檢驗和headcoded,也許它的工作原理。 這是完全廢話,不能工作...行item = " + item ";應該產生一個錯誤,因爲這是沒有效的JavaScript。

resultSet[0].forEach(function(d){ 
    d.ID = '"' + d.ID + '"'; 
} 
+0

不起作用:( –

+0

我有另一種測試方法,我的目的是迭代json結果中的所有對象,並向ID值添加引號 – xmashallax

+0

「對象不支持此屬性或方法」:/ –