2014-04-21 38 views
0

我有一个像下面如何更新本地存储阵列的特定键值?

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":[[],[]]} 
+0

你可以用'JSON.parse',设置你的价值,然后'JSON.stringify'。看到我的答案进一步的细节和演示 –

+0

这将帮助你** [点击这里](http://stackoverflow.com/questions/8104512/localstorage-change-value-for-a-specific-array-using-stringify) ** – super

回答

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

+0

在Firefox上正常工作。但不能在Internet Explorer上工作 – nishi

+0

我正在使用IE8,它的工作原理? –

+0

这是我的错误。它的工作正常。你节省了我的时间。非常感谢 – nishi

1

本地存储阵列可以使用像

pageItems.categoryID=65; 

Fiddle

5

试试这个

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

+0

updateItem函数正是我所期待的。超解决方案!谢谢 :) –