2014-04-21 37 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函數正是我所期待的。超解決方案!謝謝 :) –