Question

I have a local storage array like below

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

I need to update categoryID value to 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":[[],[]]}
Était-ce utile?

La solution 2

You can use following;

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);

Here is a working demo : Demo

Autres conseils

Try this

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');

Here is the Demo

You can use like

pageItems.categoryID=65;

Fiddle

For single or multiple updates, or new inserts, at once:

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"}])
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top