我想將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驗證器中的一個來檢查它。 –