Cookies em JSON

Cookies!

Através da serialização de dados com JSON, podemos tornar muito mais fácil a utilização de cookies em JavaScript. Além de tornar mais fácil a leitura/gravação dos dados, podemos eliminar a necessidade de vários cookies para o mesmo site.

Com essa idéia na cabeça há tempos, e aproveitando que continuo bem posicionado no Google em relação a Cookies em JavaScript, iniciei minha implementação, que terminou no código que vou mostrar.

Antes de começar…

Antes de começar, será necessário que utilizemos um parser JSON. Você pode codificar sua própria solução, ou utilizar a biblioteca JSON do JSON.org. Eu optei pela segunda opção. Isso não quer dizer que é necessário você fazer o mesmo, podendo até utilizar outra biblioteca como base.

O Código

Download JSON Cookie

Você pode fazer o download do JSON Cookie em sua página de testes, ou clicando no botão abaixo. Você também encontra a opção de incluir ou não o parser JSON, caso você deseje utilizar uma solução externa.

Utilização

Esse novo código utiliza uma sintaxe bem parecida com o antigo JGCookie, modifiquei apenas os atributos data (logicamente, para poder tratar objetos) e expires, e adicionei path.

Para definir um novo cookie, utilizamos o método JsonCookie.set. É necessário definir o nome do cookie (primeiro parâmetro) e seu conteúdo (um objeto JSON, como segundo parâmetro).

var userData = { "user": "JulioGreff", "password": "abcdefghi" };
	JsonCookie.set("userData", userData); // Gravando o Cookie
	

Também é possível definir a data de expiração e caminho (path) do cookie:

JsonCookie.set("userData", userData, new Date(2008,11,30), "/admin");
	

Para ler o cookie, basta chamar o método JsonCookie.get com o nome do cookie.

alert(JsonCookie.get("userData").user); // "JulioGreff"
	

Corrigindo um bug do JGCookie, agora também é possível apagar os cookies, através do método JsonCookie.unset, com o nome do cookie.

JsonCookie.unset("userData");
	alert(JsonCookie.get("userData")); // false
	

Caso você tenha alguma dúvida, sugestão ou correção, comente!

Posts Relacionados

Postado em janeiro 27, 2008 às 15:46

Comentários

  1. Rodrigo Fante

    legal, cookies com Javascript sempre da uma certa dor de cabeça, nem sempre funciona como deveria, isso facilita bastante :D


  2. Allan

    Olá,

    testei seu cod. e nao funcionou:


  3. Julio Greff

    @Allan: o próprio exemplo funciona, então talvez você não esteja usando da forma correta. Diga como você está usando, aí posso saber se é um bug mesmo ou um erro no seu script.


Deixe seu comentário