Storing Objects in HTML5 localStorage Storing Objects in HTML5 localStorage javascript javascript

Storing Objects in HTML5 localStorage


Looking at the Apple, Mozilla and Mozilla again documentation, the functionality seems to be limited to handle only string key/value pairs.

A workaround can be to stringify your object before storing it, and later parse it when you retrieve it:

var testObject = { 'one': 1, 'two': 2, 'three': 3 };// Put the object into storagelocalStorage.setItem('testObject', JSON.stringify(testObject));// Retrieve the object from storagevar retrievedObject = localStorage.getItem('testObject');console.log('retrievedObject: ', JSON.parse(retrievedObject));


A minor improvement on a variant:

Storage.prototype.setObject = function(key, value) {    this.setItem(key, JSON.stringify(value));}Storage.prototype.getObject = function(key) {    var value = this.getItem(key);    return value && JSON.parse(value);}

Because of short-circuit evaluation, getObject() will immediately return null if key is not in Storage. It also will not throw a SyntaxError exception if value is "" (the empty string; JSON.parse() cannot handle that).


You might find it useful to extend the Storage object with these handy methods:

Storage.prototype.setObject = function(key, value) {    this.setItem(key, JSON.stringify(value));}Storage.prototype.getObject = function(key) {    return JSON.parse(this.getItem(key));}

This way you get the functionality that you really wanted even though underneath the API only supports strings.