簡體   English   中英

如何檢查本地存儲數據集中是否存在值?

[英]How to check if value exist in Local Storage data set?

我已經完成了一些有關本地存儲的研究。 似乎是存儲數據的不錯選擇。 在我的單頁應用程序中,我使用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和本地存儲都具有相同的結構,但是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'] 括號的位置至關重要。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM