jquery сохранить объект данных json в cookie

Как сохранить данные JSON в файле cookie?

Мои данные в формате JSON выглядят так

$("#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'});

И я хочу сделать что-то вроде

var dataStore = $.cookie("basket-data", $("#ArticlesHolder").data());

и для извлечения данных, которые я хочу загрузить в $("#ArticlesHolder") как

$.each($.cookie("basket-data"), function(i,e){
 $("#ArticlesHolder").data(i, e);
});

кто-нибудь знает, нахожусь ли я на правильном пути или это нужно сделать каким-то другим способом? Проще говоря, как поместить и извлечь данные JSON из файла cookie?

105 голосов | спросил Marthin 19 52010vEurope/Moscow11bEurope/MoscowFri, 19 Nov 2010 15:38:16 +0300 2010, 15:38:16

5 ответов


0

Вы можете сериализовать данные в формате JSON, например так:

$.cookie("basket-data", JSON.stringify($("#ArticlesHolder").data()));

Затем, чтобы получить его из куки:

$("#ArticlesHolder").data(JSON.parse($.cookie("basket-data")));

Это зависит от JSON.stringify() и JSON.parse() для сериализации /десериализации вашего объекта данных, для более старых браузеров (IE <8) включают json2.js , чтобы получить JSON функциональность. В этом примере используется плагин cookie-файлов jQuery

ответил Nick Craver 19 52010vEurope/Moscow11bEurope/MoscowFri, 19 Nov 2010 15:41:59 +0300 2010, 15:41:59
0

используйте JSON.stringify(userData), чтобы скрыть объект json в строку.

var dataStore = $.cookie("basket-data", JSON.stringify($("#ArticlesHolder").data()));

и для возврата из cookie используйте JSON.parse()

var data=JSON.parse($.cookie("basket-data"))
ответил XMen 19 52010vEurope/Moscow11bEurope/MoscowFri, 19 Nov 2010 15:42:38 +0300 2010, 15:42:38
0

Не рекомендуется сохранять значение, возвращаемое из JSON.stringify(userData), в файл cookie; это может привести к ошибке в некоторых браузерах.

Перед его использованием вы должны преобразовать его в base64 (используя btoa) и при чтении , конвертировать из base64 (используя atob).

val = JSON.stringify(userData)
val = btoa(val)

write_cookie(val)
ответил Eyal Ch 3 J0000006Europe/Moscow 2015, 10:49:49
0

С сериализацией данных как JSON и Base64, зависимость jquery.cookie.js:

var putCookieObj = function(key, value) {
    $.cookie(key, btoa(JSON.stringify(value)));
}

var getCookieObj = function (key) {
    var cookie = $.cookie(key);
    if (typeof cookie === "undefined") return null;
    return JSON.parse(atob(cookie));
}

:)

ответил asimov 13 Maypm18 2018, 14:49:36
0

Попробуйте это: https://github.com/tantau-horia/jquery-SuperCookie

  

Быстрое использование:

     

создать - создать cookie

     

проверить - проверить существование

     

verify - проверить значение cookie, если JSON

     

check_index - проверить, существует ли индекс в JSON

     

read_values ​​- читать значение cookie как строку

     

read_JSON - прочитать значение cookie как объект JSON

     

read_value - прочитать значение индекса, хранящегося в объекте JSON

     

replace_value - заменить значение из указанного индекса, хранящегося в объекте JSON

     

remove_value - удалить значение и индекс, сохраненные в объекте JSON

Просто используйте:

$.super_cookie().create("name_of_the_cookie",name_field_1:"value1",name_field_2:"value2"});
$.super_cookie().read_json("name_of_the_cookie");
ответил Tantau Horia 19 +04002012-10-19T13:21:09+04:00312012bEurope/MoscowFri, 19 Oct 2012 13:21:09 +0400 2012, 13:21:09

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132