Comment enregistrer des données JSON dans un cookie?
Mes données JSON ressemblent à ceci
$("#ArticlesHolder").data('15', {name:'testname', nr:'4',price:'400'});
$("#ArticlesHolder").data('25', {name:'name2', nr:'1', price:'100'});
$("#ArticlesHolder").data('37', {name:'name3', nr:'14', price:'60'});
Et je veux faire quelque chose comme
var dataStore = $.cookie("basket-data", $("#ArticlesHolder").data());
et pour récupérer les données dans lesquelles je veux les charger $("#ArticlesHolder")
comme
$.each($.cookie("basket-data"), function(i,e){
$("#ArticlesHolder").data(i, e);
});
est-ce que quelqu'un sait si je suis sur la bonne voie ou cela devrait-il être fait d'une autre manière? En termes simples, comment mettre et extraire des données JSON à partir d'un cookie?
jquery
cookies
jquery-cookie
Marthin
la source
la source
Réponses:
Vous pouvez sérialiser les données au format JSON, comme ceci:
Ensuite, pour l'obtenir à partir du cookie:
Cela repose sur
JSON.stringify()
etJSON.parse()
pour sérialiser / désérialiser votre objet de données, pour les navigateurs plus anciens (IE <8), incluez json2.js pour obtenir laJSON
fonctionnalité. Cet exemple utilise le plugin de cookie jQueryla source
cookie
s'agit d'une fonction intégrée à jQuery. Cela ne semble pas être le cas. ou est-il obsolète ..? si ce sont les plugins que je trouve, un lien vers celui-ci serait génial pour éviter la confusion ...,
(virgule) peut empêcher les cookies d'être correctement définis dans Safari et d'autres navigateurs.Désormais, il n'est déjà plus nécessaire d'utiliser
JSON.stringify
explicitement. Exécutez simplement cette ligne de codeAprès cela, vous pouvez enregistrer n'importe quel objet dans un cookie, qui sera automatiquement converti en JSON et inversement à partir de JSON lors de la lecture du cookie.
Mais la bibliothèque JSON n'est pas fournie avec jquery.cookie, vous devez donc la télécharger vous-même et l'inclure dans la page html avant jquery.cookie.js
la source
$cookie.json = true
peut provoquer des conflits avec vos autres cookies. Soyez donc prudent en utilisant ceci sur un projet qui utilise déjà des cookies ailleurs!utiliser
JSON.stringify(userData)
pour coverty json object to string.et pour se remettre de l'utilisation des cookies
JSON.parse()
la source
Il n'est pas recommandé d'enregistrer la valeur renvoyée
JSON.stringify(userData)
dans un cookie; cela peut conduire à un bug dans certains navigateurs.Avant de l'utiliser, vous devez le convertir en base64 (en utilisant
btoa
), et lors de sa lecture, le convertir en base64 (en utilisantatob
).la source
{
ou}
, et supprimera silencieusement tous les cookies qui suivent le cookie rejeté dans l'en-tête du cookie.Avec sérialiser les données au format JSON et Base64, dépendance jquery.cookie.js:
:)
la source
Essayez celui-ci: https://github.com/tantau-horia/jquery-SuperCookie
Utilisez simplement:
la source