javascript - 如何检查本地存储数据集中是否存在值?

标签 javascript jquery json local-storage

我对本地存储做了一些研究。似乎是存储数据的一个不错的选择。在我的单页应用程序中,我使用 JSON 来存储一些在我的应用程序中多次使用的数据。我想知道是否可以用本地存储替换 JSON?还有什么好处呢?到目前为止,我能够在本地存储中加载数据,但无法检查本地存储中是否存在值以及如何读取数据。这是示例:

$.ajax({
        type: 'POST',
        url: 'App.cfc?method='+getMethod,
        data: {'recID':recID},
        dataType: 'json'
    }).done(function(obj){
        var numRecs = obj.RECORDCOUNT;
        jsonData[recID] = obj.DATA;
        localStorage.setItem(recID,JSON.stringify(obj.DATA));

        var firstN = jsonData[recID].hasOwnProperty('F_NAME') == true ? $.trim(jsonData[recID]['F_NAME']['value']) : '',
        lastN = jsonData[recID].hasOwnProperty('L_NAME') == true ? $.trim(jsonData[recID]['L_NAME']['value']) : '';
        console.log(localStorage[recID] +'\n'+ localStorage[recID].hasOwnProperty("L_NAME")); //Check Local Storage if value exist

    }).fail(function(jqXHR, textStatus, errorThrown){
    if(jqXHR.status == 0){
        alert("Fail to connect. Please check your internet connection.");
    }else{
        alert("Error: "+errorThrown);
    }
});

以下是 JSON 和 localStorage 数据的示例:

{"F_NAME":{"value":"John"},"L_NAME":{"value":"Smith"}}

在我将数据转储到控制台后,JSON 和本地存储都具有相同的结构,但在上面测试 loacl 的代码示例中,hasOwnProperty() 指示为 false存储在控制台中。我想知道我的代码是否无效或其他原因导致我的代码失败。我想使用本地存储的主要原因是用户失去互联网连接的情况。在这种情况下,我想将表单数据保存在本地存储中,这样用户就不会丢失数据。如果有人可以提供示例或提供任何提示帮助,请告诉我。谢谢!

最佳答案

localStorage存储字符串,您知道这些字符串,因为您在保存时已经JSON.stringify()了。但您需要更换支票

localStorage[recID].hasOwnProperty("L_NAME")

JSON.parse(localStorage[recID]).hasOwnProperty("L_NAME")

编辑:您有一个整个对象,您将其存储为localStorage[recID],因此您需要解析它,然后访问结果对象,例如:

const record = JSON.stringify({
  "F_NAME": {
    "value": "John"
  },
  "L_NAME": {
    "value": "Smith"
  }
});

console.log(JSON.parse(record)['F_NAME']['value'])

JSON.parse(record) 成为对象,然后您可以访问其后代参数['F_NAME']['value']。括号的位置至关重要。

关于javascript - 如何检查本地存储数据集中是否存在值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47167393/

相关文章:

javascript - 通过附加按钮在新窗口中加载 Google map

javascript - Jquery 删除子项并返回父项

javascript - 过渡时间不一样

javascript - CSS 在 Firefox 上随机过渡 'spazing' 一些元素

javascript - 无法读取模板中未定义的属性

javascript - 使用 javascript/jquery 获取 docx 文件内容

javascript - 使用http-server的Angular js1基本应用程序不进入 Controller

javascript - 如何默默地保证在页面卸载时执行 ASP.NET MVC3 操作

javascript - mustache 填充 JSON 对象错误

java - "No value for"getJSONArray 异常