我想将SQLite数据库转换为JSON对象。在搜索网页后,我决定自己写一个函数。我仍然在JS/JSON/jQuery的初学者,我想下面的代码应该工作:在一个简单的JS函数中JSON的SQLite - 解析JSON
function sqlite2json(){
newJson = '{ "$resources": [';
offlinedb = openDatabase (shortName, version, displayName, maxSize);
offlinedb.transaction(function(transaction) {
transaction.executeSql('SELECT * FROM Zaehlliste;', [],
function(transaction, result) {
if (result != null && result.rows != null) {
for (var k = 0; k < result.rows.length; k++) {
var row = result.rows.item(k);
newJson += '{ "Field0":"' + row.Field0 + '", "Field1":"' + row.Field1 + '", "Field2":"' + row.Field2 + '", "Field3":"' + row.Field3 + '", "Field4":"' + row.Field4 + '", "Field5":"' + row.Field5 + '"},'
}
jsonall = newJson + ']}';
alert(jsonall); //shows me a correct JSON as string
jsonobjoff = $.parseJSON(jsonall);
for (i = 0; i < jsonobjoff.$resources.length; i++) {
$('#json').append("<li>" + jsonobjoff.$resources[i].Field0 + " " + jsonobjoff.$resources[i].Field1 + " " + jsonobjoff.$resources[i].Field2 + " " + jsonobjoff.$resources[i].Field3 + " " + jsonobjoff.$resources[i].Field4 + " " + jsonobjoff.$resources[i].Field5 + "</li>");
}
}
},errorHandler);
},errorHandler, nullHandler);
}
这第二个for循环,并把内容与它的id =“JSON”这个元素只是为了控制,我终于得到了一个真正的JSON对象,但不幸的是没有列表出现。声明jsonall之后的警报显示了一个正确的JSON-Object作为字符串。我认为parseJSON不起作用,但我不知道为什么它不起作用。在JSON对象的最后一次输入之后,它可能是逗号吗?我知道这不是干净的,但它应该仍然有效...?
将您的JSON粘贴到几个可用的在线JSON验证器中的一个来检查它。 –