2012-08-13 56 views
2

我想用jQuery的json创建一个cookie数组。这是迄今为止工作的脚本,除了数组部分。有人可以告诉我怎么可以这样做一个数组...创建Json Cookie数组?

<script type="text/javascript"> 

     //The database value will go here... 
     var cookievalue= {'tid1':'ticvalue1','thid1':'thidvalue1','tid2':'ticvalue2','thid2':'thidvalue2'}; 

     //Create a cookie and have it expire in 1 day. 
     $.cookie('cookietest', cookievalue, { expires: 1 }); 

     //Write the value of the cookie... 
     document.write($.cookie('cookietest')); 

    </script> 

我遇到的问题是,当我的数组传递给它的存储[object object]而非阵列值的cookie。因此,如果我循环访问数据,那么我将使用多个Cookie而不是一个Cookie,并将数组值存储在

+0

,我认为他们称之为什么,我要做的是关联数组。有点像这里发生的事情,但行格式多行数据:http://www.electrictoolbox.com/loop-key-value-pairs-associative-array-javascript/ – 2012-08-13 09:13:52

回答

0

您正在使用这些属性创建一个对象。而且你的单引号代替双引号(据我所知,你必须用双引号指定一个字符串)。

试一下:

 var cookievalue= [{"tid1":"ticvalue1"},{"thid1":"thidvalue1"},{"tid2":"ticvalue2"},{"thid2":"thidvalue2"}]; 

所以你解析后得到如下:结构

cookievalue[0].tid1 == "ticvalue1"<br/> 
cookievalue[1].thid1 == "thidvalue1"<br/> 
cookievalue[2].tid2 == "ticvalue2"<br/> 
cookievalue[3].thid2 == "thidvalue2"<br/> 
+0

似乎没有工作其返回[对象对象],[对象对象],[对象对象],[对象对象]任何其他建议?谢谢你的方式! – 2012-08-13 09:01:55

+1

使用JSON.stringify – Genosite 2012-08-13 09:02:54

+0

所以你期望什么?简单的那些值作为一个数组?在这种情况下:'var cookievalue = [“ticvalue1”,“thidvalue1”,“ticvalue2”,“thidvalue2”];' – 2012-08-13 09:04:45

0

我遇到的问题是,当我的数组传递给它存储的cookie [对象对象]而不是数组值。因此,如果我循环访问数据,那么我将使用多个Cookie而不是一个Cookie,并将数组值存储在其中。

现在,您已经很简单了!因此,我们可以帮你没有数千条评论)


<!DOCTYPE html> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
    <script src="../js/jquery-1.7.2.js" type="text/javascript"></script> 
    <script src="https://raw.github.com/douglascrockford/JSON-js/master/json2.js" type="text/javascript"></script> 
    <script src="https://raw.github.com/carhartl/jquery-cookie/master/jquery.cookie.js" type="text/javascript"></script> 
    </head> 
    <body> 
     <script> 
      $(function() { 
       var cookieValueString = JSON.stringify( 
        [ 
         { 
          'column1':'row1col1', 
          'column2':'row1col2' 
         }, 
         { 
          'column1':'row2col1', 
          'colum2':'row2col2' 
         } 
        ] 
       ); 
       $.cookie('cookietest', cookieValueString, { expires: 1 }); 

       var arrayFromCookie = JSON.parse($.cookie('cookietest')); 
       for(var i = 0; i < arrayFromCookie.length; i++) { 
        alert("Row #" + i 
          + "- Column #1: " + arrayFromCookie[i].column1 
          + " - Column #2: " + arrayFromCookie[i].column2); 
       } 
      }); 
     </script> 
    </body> 
    </html>