2016-03-07 2 views
0

Comment enregistrer un objet/tableau dans des cookies JavaScript? J'ai essayé simple codeEnregistrer un objet/tableau dans le cookie jQuery

var item = { 
    price: 200, 
    company: 'Microsoft', 
    quantity: 500, 
    code: 'm33' 
} 

console.log(item); 
Cookies.set('item', item); 
console.log(Cookies.get('item')); 

Il montre toutes les valeurs dans le premier message de la console, mais ne donne que "[object Object]" dans le second. On dirait que js-cookie ne peut pas fonctionner correctement avec les objets. Y a-t-il un moyen de régler ça?

+0

Pour la sérialiser. 'Cookie.set ('item', JSON.stringify (item))'/'JSON.parse (Cookie.get ('item'))' –

Répondre

1

Vous stockez un objet et les cookies sont autorisés en mode texte seulement. Rappelez-vous que les cookies ont une longueur maximum de 4 Ko, donc vous ne pouvez pas stocker beaucoup d'informations ici (utilisez localStorage à la place).

Pour résoudre ce problème, vous devez à la stringify JSON premier:

Cookies.set('item', JSON.stringify(item)); 

Et vous allez stocker un objet de chaîne de caractères. Pour y accéder, vous devez alors analyser la chaîne:

console.log(JSON.parse(Cookie.get('item'))); 
+0

Merci pour la solution. Je le cherchais depuis 8 heures. – Anirudh

-1

En cookie, vous ne pouvez stocker que des chaînes. Donc, afin de stocker l'objet d'abord, vous convertissez votre objet en chaîne. L'utilisation this plugin est ici un exemple:

var people = [ 
    {"id": 123, "name": "Mazahir Eyvazli"}, 
    {"id": 128, "name": "Mayki Nayki"}, 
    {"id": 131, "name": "Mike Shinoda"} 
]; 
$.cookie("people", JSON.stringify(people)); 

Si vous souhaitez accéder à vos personnes comme un objet de biscuit

// $.cookie("people") will return people object as an string 
// therefore we parse it to JSON object 
var people = $.parseJSON($.cookie("people")); 
// now we can access our object 
people[0]["id"] // --> 123 
people[1]["name"] // --> Mayki Nayki 
+0

OP utilise déjà une bibliothèque de cookies. Passer à un autre ne fera aucune différence – charlietfl

-1

utiliser Just:

Cookies.getJSON('item') 

js cookie a construit -support de l'analyse JSON à partir de la version 2.0.0, il n'est pas nécessaire de changer la façon dont vous l'avez défini. Pour plus d'informations, voir https://github.com/js-cookie/js-cookie/tree/v2.1.0#json