通过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值中添加引号?
谢谢。
整个代码..
答案 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 + '"';
}