¿Cómo guardo datos JSON en una cookie?
Mis datos JSON se ven así
$("#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'});
Y quiero hacer algo como
var dataStore = $.cookie("basket-data", $("#ArticlesHolder").data());
y para recuperar los datos quiero cargarlos en $("#ArticlesHolder")
like
$.each($.cookie("basket-data"), function(i,e){
$("#ArticlesHolder").data(i, e);
});
¿Alguien sabe si estoy en el camino correcto o debería hacerse de otra manera? En pocas palabras, ¿cómo coloco y extraigo datos json de una cookie?
jquery
cookies
jquery-cookie
Marthin
fuente
fuente
Respuestas:
Puede serializar los datos como JSON, así:
Luego, para obtenerlo de la cookie:
Esto se basa en
JSON.stringify()
yJSON.parse()
para serializar / deserializar su objeto de datos, para los navegadores más antiguos (IE <8) se incluye json2.js para obtener laJSON
funcionalidad. Este ejemplo usa el complemento de cookies jQueryfuente
cookie
es una función incorporada en jQuery. Parece que no. o está en desuso ..? si son los complementos que encuentro, vincularlos sería genial para evitar la confusión ...,
(coma) puede hacer que las cookies no se establezcan correctamente en safari y otros navegadores.Ahora ya no es necesario utilizarlo
JSON.stringify
explícitamente. Simplemente ejecute esta línea de códigoDespués de eso, puede guardar cualquier objeto en la cookie, que se convertirá automáticamente a JSON y volverá de JSON al leer la cookie.
Pero la biblioteca JSON no viene con jquery.cookie, por lo que debe descargarla usted mismo e incluirla en la página html antes de jquery.cookie.js
fuente
$cookie.json = true
puede causar conflictos con sus otras cookies. ¡Así que tenga cuidado al usar esto en un proyecto que ya usa cookies en otros lugares!utilizar
JSON.stringify(userData)
para coverty json object to string.y para recuperarse del uso de cookies
JSON.parse()
fuente
No es una buena práctica guardar el valor que se devuelve
JSON.stringify(userData)
en una cookie; puede provocar un error en algunos navegadores.Antes de usarlo, debe convertirlo a base64 (usando
btoa
), y al leerlo, convertirlo de base64 (usandoatob
).fuente
{
o}
, y eliminará silenciosamente cualquier cookie que siga a la cookie rechazada en el encabezado de la cookie.Con serializar los datos como JSON y Base64, dependencia jquery.cookie.js:
:)
fuente
Prueba este: https://github.com/tantau-horia/jquery-SuperCookie
Solo usa:
fuente