쿠키에 JSON 데이터를 저장하려면 어떻게해야합니까?
내 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 데이터를 어떻게 넣고 가져 오나요?
답변
다음과 같이 데이터를 JSON으로 직렬화 할 수 있습니다.
$.cookie("basket-data", JSON.stringify($("#ArticlesHolder").data()));
그런 다음 쿠키에서 가져 오려면 :
$("#ArticlesHolder").data(JSON.parse($.cookie("basket-data")));
이전 브라우저 (IE <8)에는 기능 을 가져 오기 위해 json2.js 가 포함 JSON.stringify()
되어JSON.parse()
있으므로 이는 데이터 개체 에 의존 하고 직렬화 / 역 직렬화합니다 . 이 예에서는 jQuery 쿠키 플러그인을 사용합니다.JSON
답변
이제 이미 JSON.stringify
명시 적으로 사용할 필요가 없습니다 . 이 코드 줄을 실행하십시오.
$.cookie.json = true;
그 후 쿠키에 객체를 저장할 수 있으며, 쿠키를 읽을 때 JSON으로 자동 변환되고 JSON에서 다시 돌아옵니다.
var user = { name: "name", age: 25 }
$.cookie('user', user);
...
var currentUser = $.cookie('user');
alert('User name is ' + currentUser.name);
하지만 JSON 라이브러리에는 jquery.cookie가 포함되어 있지 않으므로 직접 다운로드하여 jquery.cookie.js 앞에 HTML 페이지에 포함시켜야합니다.
답변
사용 JSON.stringify(userData)
문자열로 coverty의 JSON 개체에.
var dataStore = $.cookie("basket-data", JSON.stringify($("#ArticlesHolder").data()));
쿠키 사용에서 돌아 가기 위해 JSON.parse()
var data=JSON.parse($.cookie("basket-data"))
답변
반환 된 값을 JSON.stringify(userData)
쿠키 에 저장하는 것은 좋지 않습니다 . 일부 브라우저에서 버그가 발생할 수 있습니다.
사용하기 전에 base64 로 변환 (사용 btoa
)하고 읽을 때 base64 에서 변환 (사용 atob
)해야합니다.
val = JSON.stringify(userData)
val = btoa(val)
write_cookie(val)
답변
데이터를 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));
}
🙂
답변
이것을 시도하십시오 :
https://github.com/tantau-horia/jquery-SuperCookie
빠른 사용법 :
생성-쿠키 생성
확인-존재 여부 확인
확인-JSON 인 경우 쿠키 값 확인
check_index-JSON에 인덱스가 있는지 확인
read_values-쿠키 값을 문자열로 읽습니다.
read_JSON-쿠키 값을 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");