首页 > 解决方案 > 如何解析 localStorage 对象并获取值

问题描述

我有以下localStorageData物品和以下物品。根据需要,我可能会将任何对象(如recordId, autoId, simId, )传递sessionIdlocalData.saveLocalStorageData({recordId});

那么在 main.js 文件中,我如何调用localStorageData对象并解析recordIdor并将值分配给?autoIdsimIddata

localStorage.js

    let localStorageData = {};
    
    function saveLocalStorageData ({recordId, autoId, simId, sessionId}) {
        localStorageData = {
            recordId:recordId,
            autoId: autoId,
            simId: simId,
            sessionId : sessionId
        }
        return localStorageData
    }
    
    export { saveLocalStorageData };

记录.js

        let localData = require("../../support/localStorage");

        let text =  $('#someId > span').text();
        let ele = text.split("#");
        let recordId = {};
        recordId = ele;
        const localStorageData =   localData.saveLocalStorageData({recordId});
        window.localStorage.setItem('localStorageData', JSON.stringify(localStorageData));

main.js

    const moment = require('moment');
    let data;
    const today = moment().format('DD/MM/YYYY');

    /* Below code snippet will find the columnPosition of the desired column in a table */
    const columnPosition = $(`#RecordIdMain`)
        .find(`th:has(a:contains("Record"))`)
        .index();

    if (value === 'localStorage') {
    // how can I call the localStorageData object and parse the recordId or autoId or simId and assign the value to data ? 
      data = ???
    } else if (value === 'date') {
        data = today;
    } else {
        data = value;
    }

标签: javascriptlocal-storage

解决方案


使用 localStorage 对象需要您先 JSON.parse() 它。

console.log({'loginStatus': JSON.parse(window.localStorage.getItem('loginStatus')).isAuthenticated})

您需要一个包含要检索的项目键的变量,并且它必须是一个字符串:

const key = 'someId' || 'autoId' ... // (some logic to determine the item key)

let data

fakeLocalStorageItem = { 
  "autoId": "123",
  "simId": "aaa111",
  "someId": "2bb2bcQQQ",
  "recordId": "44342asd33423-234234"
}

// Convert fake json to imitate localStorage string format:
const stringJson = JSON.stringify(fakeLocalStorageItem)

// Convert it back to a js object
storedItem = JSON.parse(localStorage.getItem(stringJson))

if ((1 + 1) === 2) {
  data = storedItem.key
} else if (value === 'date') {
  data = today;
} else {
  data = value;
}

推荐阅读