创建Json Cookie数组?

时间:2012-08-13 08:56:35

标签: javascript jquery json

我正在尝试使用jquery的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>

我遇到的问题是当我将数组传递给cookie时,它存储[object object]而不是数组值。因此,如果我遍历数据,那么我将使用多个cookie而不是一个cookie,其中数组值存储在

2 个答案:

答案 0 :(得分:0)

您正在使用这些属性创建一个对象。并且你使用单引号而不是双引号(据我所知,在json中你必须指定带双引号的String)。

试试:

      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/>

答案 1 :(得分:0)

  

我遇到的问题是当我将数组传递给cookie时,它存储[object object]而不是数组值。因此,如果我遍历数据,那么我将使用多个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>