web存储部分问题

  JSON.stringify(xxx) 将数组转换成 JSON 字符串

 

 JSON.parse   (xxx) 将该字符串重新转换成数组

 

 

    在HTML5中,本地存储是一个window的属性,包括localStorage和sessionStorage,从名字应该可以很清楚的辨认二者的区别,前者是一直存在本地的,后者只是伴随着session,窗口一旦关闭就没了。二者用法完全相同,这里以localStorage为例。

 

                    代码:

                          localStorage.a = 3;//设置a为"3"

                       

                          localStorage["a"] = "sfsf";//设置a为"sfsf",覆盖上面的值

                         

                          localStorage.setItem("b","isaac");//设置b为"isaac"

                       

                          var a1 = localStorage["a"];//获取a的值

                       

                          va2 = localStorage.a;//获取a的值

                        

                          var b = localStorage.getItem("b");//获取b的值

                        

                          localStorage.removeItem("c");//清除c的值

        

 

           这里最推荐使用的自然是getItem()和setItem(),清除键值对使用removeItem()。如果希望一次性清除所有的键值对,可以使用clear()。 

 

 

                     以下示例使用 JSON.parse 将 JSON 字符串转换成对象。

 

                      var jsontext = '{"firstname":"Jesper","surname":"Aaberg","phone":["555-0100","555-0120"]}';

 

                      var contact = JSON.parse(jsontext);document.write(contact.surname + ", " +                                                              contact.firstname); 

 

                        // Output: Aaberg, Jesper  

 

                    以下示例演示了如何使用 JSON.stringify 将数组转换成 JSON 字符串,然后使用 JSON.parse              将该字符串重新转换成数组。 

 

            var arr = ["a", "b", "c"];

 

            var str = JSON.stringify(arr);document.write(str);document.write ("<br/>");

 

            var newArr = JSON.parse(str);

 

            while (newArr.length > 0) { document.write(newArr.pop() + "<br/>");}

 

            // Output:// ["a","b","c"]// c// b// a

 

     数据存取

                   1.存储一个元素存储多种信息的数组类型数据

                           var message = {};定义一个名字为message的对象

                           message.name = which_name_one;定义message的.name属性            

                           message.phone = which_name_two;定义message的.phone属性

                           message.activity = which_name_three;     定义message的.activity属性

 

                     上述定义也可以这样定义:

                           message = {name: which_name, phone: which_phone, activity:which_activity};

 

 

                          var messages = JSON.parse(localStorage.getItem('messages')) || [];

                          定义一个messages数组

 

                          messages.push(message);将message数组的一个元素压入messages数组中

                         若需要后压入的位于数组的开头可用messages.unshift(message);

 

                            localStorage.setItem("messages", JSON.stringify(messages));存储一下数组

                             上述步骤就可以完成存储一个包含多种属性的数组

 

            数据存储格式如下:

               [{"name":"张三","phone":"52289552","activity":"a"},

                 {"name":"李四","phone":"5228982","activity":"a"},

                  {"name":"王五","phone":"5228989","activity":"a"}]

 

 

            2.提取多种属性的数组元素

                     以messages数组为例

                    若要提取messages的某个元素的某个属性值:

                     messages[i].name;提取messages数组中第i个元素的name

                    若要提取王五的电话:messages[2].phone      

                    数组元素下标从0开始

                    提取元素前应先定义或提取一下数组messages

                    添加此句var messages = JSON.parse(localStorage.getItem('messages')) || [];

 

 

              3.存储字符串类型数据

                    localStorage.setItem('activity', activity.name);存储字符串类型数据

                   将activity.name存储在名为activity的名下

                  当用这个数据时localStorage.activity即可调用此数据,这种存发只能存储一个数据,下次赋值会覆盖前面的数据

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值