2012-08-13 92 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>