Cordova - 如何从localstorage保存和读取JSON对象

时间:2014-08-21 09:29:23

标签: javascript json sqlite cordova local-storage

我有一个用于进行Web服务调用的cordova项目。这会产生一个json对象

Object {deletedIds: Array[0], ... etc etc

我正在尝试将其保存到数据库,然后在没有互联网连接的情况下读取数据。

从获取数据的函数中,我将数据设置为localStorage(localStorage.setItem("folderData", data);),然后调用db.transaction(queryFolderTable, errorCB);

然后读取本地存储,保存(如果可能)并读取它(如果没有互联网连接)

当我从表中选择数据时,我调用querySuccessFolderData函数

function querySuccessFolderData(tx, results) {
    var len = results.rows.length;
    alert("folderData table: " + len + " rows found.");
    for (var i=0; i<len; i++){
        var folderData = results.rows.item(i).folderData;
    }
    console.log(folderData);
}

当我在console.log中使用folderData(或者不要将JSON.parse添加到任何内容)时,我得到以下内容:

[object Object]

我如何能够将数据成功保存为json对象,然后正确读出?我在localStorage中设置之前尝试过JSON.parse数据,但是我得到以下控制台错误

Uncaught SyntaxError: Unexpected token o 

如果我在从localStorage读取数据时尝试JSON.parse数据,我会收到以下2个错误

Uncaught SyntaxError: Unexpected token o connection.js:
Error processing SQL: 0

我做错了什么?我是否需要JSON.stringify数据以使其在任何时候都可读?任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:3)

是的,在保存到数据库之前尝试使用JSON.stringify对象。当你读取data =&gt; JSON.parse它来获取对象。