Storing arbitrary objects in HTML5's localStorage

To store arbitrary objects in HTML5's localStorage you just JSON encode them (as you can only store strings).

Here is my CoffeeScript helper extension:

if window.Storage and window.JSON
    window.$storage = (key) ->
        set: (value) ->
            localStorage.setItem(key, JSON.stringify(value))
        get: ->
            item = localStorage.getItem(key)
            JSON.parse(item) if item

Usage:

$storage("my_object").set({"meaning": 42})
$storage("my_object").get() //Equals to {"meaning": 42}

JavaScript version:

if(window.Storage && window.JSON) {
  window.$storage = function(key) {
    return {
      set: function(value) {
        return localStorage.setItem(key, JSON.stringify(value));
      },

      get: function() {
        var item = localStorage.getItem(key);
        if (item) {
          return JSON.parse(item);
        }
      }
    };
  };
}
28. Jun 2011 Code · Code improvement · JavaScript · node.js
© Amir Salihefendic