缺少JSON对象中的引号。如何添加它们?

时间:2013-05-20 00:52:13

标签: javascript sql json jqgrid quotes

通过jqGrid传递已解析的JSON变量时,我遇到了一些问题。 我正在查询MS Access .mdb文件。问题是有一个ID字段,它是MS Access中的自动编号整数字段,查询时没有引号。 jqGrid不喜欢这个,这就是为什么它没有在表中显示ID值。

 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

2 个答案:

答案 0 :(得分:1)

jqGrid可以使用与字符串完全相同的整数。因此,您无需将数字更改为字符串。您在上一个问题中发布的JSON包含id而不是ID。 JavaScript是区分大小写的语言。我想如果您替换

,您会在id列中看到值
{name:'ID',index:'ID', width:60, sortable:false},

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

此外,我建议您从index删除comModel媒体资源。

答案 1 :(得分:0)

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

未经测试和头部编码,也许它可以正常工作。这是完全废话而无法工作......行item = " + item ";应该产生错误,因为这不是有效的javascript。

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