cookie中儲存json

來源:互聯網
上載者:User

標籤:發布   ref   json   modify   com   getjson   code   ef6   move   

原文發布時間為:2009-12-14 —— 來源於本人的百度文章 [由搬家工具匯入]

http://www.denisdeng.com/?p=563

最近的一个项目需要在cookie中存储json对象,查看网络资料,没有找到很好的例子,最终利用jquery.jsoncookie.js、jquery.cookie.js和json2.js完成了该项目的需求,在http://lab.distilldesign.com/json-cookie/有关于jquery.jsoncookie.js使用的一些简单的方法,而本人所提到的项目有以下的需求:

  • 用户可以将数据存储于cookie之中;
  • 用户也可以删除cookie中已经存在的对象;
  • 用户可以修改cookie中对象相应的属性值。

先看看js代码:

01. var jsonCookie = { 02.          jsonName: 'job' , 03.          jsonNum: 'num' , 04.          store: function (id,name,address){ 05.              var num = jsonCookie.getNum(); 06.              var json = jsonCookie.getJson(); 07.              if (!json[id]){ 08.                  json[id] = {}; 09.                  json[id].name = name; 10.                  json[id].address = address; 11.                  num++; 12.                  $.JSONCookie(jsonCookie.jsonName,json); 13.                  $.cookie(jsonCookie.jsonNum,num); 14.              } 15.          }, 16.          remove: function (id){ 17.              var num = jsonCookie.getNum(); 18.              var json = jsonCookie.getJson(); 19.              if (json[id]){ 20.                  delete json[id]; 21.                  num--; 22.                  $.JSONCookie(jsonCookie.jsonName,json); 23.                  $.cookie(jsonCookie.jsonNum,num); 24.              } 25.          }, 26.          modify: function (id,key,value){ 27.              var json = jsonCookie.getJson(); 28.              if (json[id]){ 29.                  json[id][key] = value; 30.                  $.JSONCookie(jsonCookie.jsonName,json); 31.              } 32.          }, 33.          getJson: function (){ 34.              var json = $.JSONCookie(jsonCookie.jsonName); 35.              return (json == null ) ? {} : json; 36.          }, 37.          getNum: function (){ 38.              var num = $.cookie(jsonCookie.jsonNum); 39.              return (num == null ) ? 0 : num; 40.          } 41. }

在jsonCookie 对象中,有两个属性:jsonName和jsonNum。

  • jsonName定义json对象的名字;
  • jsonNum定义json对象中存储的个数。

另外有五个方法。

  • store(id,name,address) 该函数将数据存储到cookie中,接受三个参数。当然,你可以自己根据需要来增加参数的数量。
  • remove(id) 该函数用来删除数据,接受一个参数。要删除对象的id;
  • modify(id,key,value) 该函数修改已存对象的属性值,接受三个参数。一个id和相应的要修改对象的名字和新的属性值;
  • getJson() 该函数获得cookie中的json对象;
  • getNum() 该函数取得cookie中存储的json对象中存储的数据长度。

查看demo

在未使用jquery.jsoncookie.之前,我想当然的认为cookie能保存json对象,但调试之后,我发现结果并非我所料。查看资料,发现cookie不能存储json格式的数据。后来通过搜索发现了这个jquery.jsoncookie插件。本文只是个人应用jquery.jsoncookie.插件的一个总结,希望能对你有所启发。

cookie中儲存json

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.