zoukankan      html  css  js  c++  java
  • JSON.parse()和JSON.stringify()用法

    JSON.parse()【从一个字符串中解析出json对象】

    JSON.stringify()【从一个对象中解析出字符串】

    做项目的登陆功能时,用到了h5的sessionstorage方法,将登陆后返回的信息想存到了浏览器中。但返回信息是一对象,所以需要使用

    JSON.stringify方法将对象转换成字符串,然后进行存储。如以下代码
    //点击登陆
    function fun_login(_type) {
      //检查录入项目:
      var err = checkLogin();
      if(err) {
        alert(err);
        return;
      }
      var formData = {
        "loginType": _type,
        "loginName": $(".login-right input[name='loginname']").val(),
        "password": $(".login-right input[name='password']").val()
      };
      $.ajax({
        type: 'post',
        url: "../spirit/login",
        data: formData,
        dataType: 'json',
        success: function(data) {
          console.log(data);
          if(data.returnCode == "00") {
            isLogin = "1";
            var memberObjStr = JSON.stringify(data.memberInfo);
            sessionStorage.setItem("memberInfo", memberObjStr);
            sessionStorage.setItem("pwd", $(".login-right input[name='password']").val());
            $("#signBox").html("");
            $("#signModal").modal("hide");
            fillMemberMes(memberObjStr);
          } else {
            alert("登录失败:" + data.messageInfo);
          }
        },
        error: function(XMLHttpRequest, textStatus, errorThrown) { //失败回调函数
          var m = "系统错误:
    statu=" + XMLHttpRequest.status + "
    readyState=" + XMLHttpRequest.readyState + "
    text=" + textStatus + "
    errThrown=" + errorThrown;
          alert(m);
        }
      });

    登陆以后刷新时,判断浏览器存储的信息在不在,如果有,则把个人信息放到网站顶部;如果没有,则提醒登陆。这时填充信息的时候还得用对象来填充,所以用JSON.parse的方法将字符串转换为对象再进行操作;

    //加载信息
    $(document).ready(function(e) {
      var memberObjStr = sessionStorage.getItem("memberInfo");
      if(memberObjStr) fillMemberMes(memberObjStr);
    });

    //登陆后填充头部信息
    function fillMemberMes(data) {
    var data = JSON.parse(data);
    console.log(data);
    if(data) {
    if(data.memberClass == '1') data.memberType = "个人会员";
    else {
    if(data.memberType == '1') data.memberType = "供应商会员";
    else
    if(data.memberType == '2') data.memberType = "采购单位会员";
    else
    data.memberType = "未知类型会员";
    }
    var str = '<span class="headImg"><img src="../userfiles/temp/defaultPerLogo001.png" style="25px;height:25px;margin-top:-5px;margin-right:5px;">' + data.userName + '</span>' +
    '<span>' + '(' + data.memberType + ')' + '</span>' +
    '<a onclick="toadmin()" style="color:#fc771f;padding-left:15px;cursor:pointer;">登录管理端</a>';
    $("#signBox").html(str);
    };
    }

  • 相关阅读:
    【Codevs 2630】宝库通道
    【Codevs 2115】数集分割
    【HDU2037】今年暑假不AC
    【Codeforces】Round #376 (Div. 2)
    【Dairy】2016.10.17-1 OIer最悲剧的事情
    【Codevs 3115】高精度练习之减法
    【Codevs1080】质数环
    【T^T 1871】获取敌情
    【Codevs3151】交通管制I
    【Codeforces】716D Complete The Graph
  • 原文地址:https://www.cnblogs.com/TigerZhang-home/p/8686836.html
Copyright © 2011-2022 走看看