我从远程数据库中提取数据并获取此JSON数据:
{"list1":{"id":1, "item":"testobj1"},"list2":{"id":2, "item":"testobj2"},"list3":{"id":3,
"item":"testobj3"},"list4":{"id":4, "item":"testobj4"},"list5":{"id":5, "item":"testobj5"}}
我现在可以遍历数据中的对象并在屏幕上显示对象列表。它工作正常:
var d = JSON.parse(hr.responseText);
databox.innerHTML = "";
for (var o in d) {
if (d[o].item) {
databox.innerHTML += '<p>' + d[o].item + '</p>' + '<hr>';
}
}
然而,现在,我想将此数据插入到我的Sqlite数据库中。我不太清楚如何判断循环是什么?[o] .id&#39;和&#39; d [o] .item&#39;是我想插入我的数据库的项目。
db.transaction(function(tx) {
var sql = "INSERT OR REPLACE INTO testTable (id, item) " + "VALUES
(?, ?)";
log('Inserting or Updating in local database:');
var d = JSON.parse(hr.responseText);
var id = d[o].id;
var item = d[o].item;
for (var i = 0; i < d.length; i++) {
log(d[o].id + ' ' + d[o].item);
var params = [d[o].id, d[o].item];
tx.executeSql(sql, params);
}
log('Synchronization complete (' + d + ' items synchronized)');
}, this.txErrorHandler, function(tx) {
callback();
});
我希望有人可以看看这个循环并告诉我哪里出错了。提前谢谢了!
答案 0 :(得分:1)
您正在迭代d
,好像它是一个数组而不是一个对象。这样的事情可能就是你在寻找的东西:
var d = JSON.parse(hr.responseText);
for (var o in d) {
var params = [d[o].id, d[o].item];
tx.executeSql(sql, params);
}