如何更新本地存储阵列的特定键值?

时间:2014-04-21 06:10:08

标签: jquery arrays local-storage

我有一个本地存储阵列,如下所示

pageItems  = {"stationID":"145","categoryID":"-1","pickupDate":"2014-04-22","pickupTime":"08:00","returnDate":"2014-04-23","returnTime":"08:00","milage":"false","miles":"","attributes":[[],[]],"additionals":[[],[]]}

我需要将categoryID值更新为65

pageItems  = {"stationID":"145","categoryID":"65","pickupDate":"2014-04-22","pickupTime":"08:00","returnDate":"2014-04-23","returnTime":"08:00","milage":"false","miles":"","attributes":[[],[]],"additionals":[[],[]]}

4 个答案:

答案 0 :(得分:7)

试试这个

var pageItems = {
            "stationID": "145",
            "categoryID": "-1",
            "pickupDate": "2014-04-22",
            "pickupTime": "08:00",
            "returnDate": "2014-04-23",
            "returnTime": "08:00",
            "milage": "false",
            "miles": "",
            "attributes": [[], []],
            "additionals": [[], []]
};

function setObject(key, obj) {
    localStorage.setItem(key, JSON.stringify(obj));
}

function getObject(key) {
    return JSON.parse(localStorage.getItem(key));
}

function updateItem(key, property, value)
{
    var obj = getObject(key);
    obj[property] = value;    
    setObject(key, obj);
}

//set object to sessionStorage
setObject('test', pageItems);

//update object property in sessionStorage
updateItem('test', 'categoryID', 65);

//get object from sessionStorage
getObject('test');

以下是 Demo

答案 1 :(得分:2)

您可以使用以下内容;

var pageItems  = '{"stationID":"145","categoryID":"-1","pickupDate":"2014-04-22","pickupTime":"08:00","returnDate":"2014-04-23","returnTime":"08:00","milage":"false","miles":"","attributes":[[],[]],"additionals":[[],[]]}';

var json = JSON.parse(pageItems);

json.categoryID = 65;

pageItems_v2 = JSON.stringify(json);

以下是一个有效的演示: Demo

答案 2 :(得分:0)

您可以使用

pageItems.categoryID=65;

Fiddle

答案 3 :(得分:0)

一次获取单个或多个更新或新插入的内容

function updateStorage(keyName, newkeypairs=[]){
    const obj = JSON.parse(localStorage.getItem(keyName));
    newkeypairs.map(n => obj[Object.keys(n)] = Object.values(n)[0]);
    localStorage.setItem(keyName,JSON.stringify(obj));
}

//single
updateStorage("company", [{name:"ACME"}])

//multiple
updateStorage("company", [{name:"ACME"},{location:"USA"}])