javascript - Cordova - 如何从本地存储保存和读取 JSON 对象

标签 javascript json sqlite cordova local-storage

我有一个 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 文件夹数据(或者不将 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 以使其随时可读?任何帮助将不胜感激!

最佳答案

是的,在保存到数据库之前尝试 JSON.stringify 对象。当你读取 data => JSON.parse 来获取对象时。

关于javascript - Cordova - 如何从本地存储保存和读取 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25422838/

相关文章:

javascript - 覆盖对象原型(prototype)并不允许任何进一步的覆盖

javascript - 如何移动谷歌地图标记并获取当前的纬度和经度

sql - 如何跳过子查询的匹配结果?

javascript - 隐藏/显示表格 onclick 在 div 内不起作用

javascript - 如何在 Magento 2 Checkout 中覆盖 JS 资源

java - 如何将数组保存到 PHP 数据库中

java - Spring JSON 请求正文未映射到 Java POJO

php - 禁用 jquery datepicker 日历天,基于 ajax php mysql 表

android - 从 db 中选择,但 CursorIndexOutOfBoundsException 请求索引 2,大小为 2

android - 如何更新 SQLiteDatabase 中的单个(或多个,但不是全部)列?