【问题标题】:Issue storing arrays in SQLite using JavaScript使用 JavaScript 在 SQLite 中存储数组的问题
【发布时间】:2013-08-03 13:28:00
【问题描述】:

我一直在使用 Cordova 和 SQLite 存储适配器。当我使用JSON.stringify 存储对象并检索它们时,它们会起作用。我还有几个字段是数组,但是当我存储它们时,它们只是以逗号分隔。如果数组中只有一项,则它只是存储为单个字符串。

初始数组:

["test1", "test2", "test3"]

存储为:

test1, test2, test3

当我从数据库中检索这些特定字段时,我可以将它们拆分,但仍然想知道是否有更好的方法来存储它们。有没有一种优雅的方式来存储数组并使用 JavaScript 在 SQLite 中检索它?

【问题讨论】:

    标签: javascript arrays sqlite cordova


    【解决方案1】:

    我没看出有什么问题,解析后可以访问初始数组(JSON.parse(yourStringifiedArrayString))。

      var yourarr=["test1", "test2", "test3"];
      var afterStringify = JSON.stringify(yourarr);
      console.log('After Stringify:'+afterStringify);
      var prevArr=JSON.parse(afterStringify);
      console.log('After Parsing:'+prevArr);
      //now access your array
       alert(prevArr[1]);//will show test2
    

    Check Fiddle

    【讨论】:

    • 我猜你是对的。即使它们不是 JSON,它看起来也可以对数组进行字符串化和解析。我想在处理器上使用 split 会更便宜?
    • 我不认为拆分会更便宜。如果你同意我的回答,那么你应该接受它。
    • 我刚刚将所有拆分切换为使用 json 函数,它似乎正在工作。
    【解决方案2】:

    我没有看到将数组保存为分隔字符串的问题 - 它对我来说很好用。从 SQLite 检索数组时,只需使用 split() 方法重新创建数组即可。

    【讨论】:

    • 是的,我知道这是我可以解决的问题,尽管我有很多表和字段。检查这些字段然后在返回结果之前拆分它们感觉就像是很多额外的逻辑。
    猜你喜欢
    • 1970-01-01
    • 2015-03-06
    • 1970-01-01
    • 2011-08-30
    • 2013-03-16
    • 2013-02-08
    • 2018-11-22
    • 1970-01-01
    • 2020-03-06
    相关资源
    最近更新 更多