【问题标题】:How to read json object from cookie如何从 cookie 中读取 json 对象
【发布时间】:2014-01-09 03:43:54
【问题描述】:

我使用 jquery.cookie 来存储我的客户端应用程序 cookie,其中一些 cookie 包含 JSON。

这是我目前的脚本

trigger.on('click touchend', function () {
    var StoredSettings = $.cookie('qlToggled'),
        isToggled = 0,
        offset = -300,
        endpoint = 15,
        triggerX = $('#leftcolumn').offset().left + $('#leftcolumn').width();

    if (typeof StoredSettings !== 'undefined') {
        isToggled = StoredSettings.toggled;
        offset = StoredSettings.cOffset;
        endpoint = StoredSettings.cEndpoint;
        triggerX = StoredSettings.cTriggerX;
    }

    if (isToggled == '1') {
        offset = 0;
        endpoint = 315;
        triggerX = $('#leftcolumn').width();
        var cookieValues = { toggled: '0', cOffset: offset, cEndpoint: endpoint, cTriggerX: triggerX };
        $.cookie('qlToggled', JSON.stringify(cookieValues), { expires: 365, path: '/', json: true });
    }
    else {
        var cookieValues = { toggled: '1', cOffset: offset, cEndpoint: endpoint, cTriggerX: triggerX };
        $.cookie('qlToggled', JSON.stringify(cookieValues), { expires: 365, path: '/', json: true });
    }

    $('#leftcolumn').animate({ 'left': offset }, speeding);
    $('#content').animate({ 'margin-left': endpoint }, speeding);
    trigger.animate({ 'left': triggerX }, speeding);
});

我使用 FireBug 查看保存了哪些 cookie,并成功创建了在上述脚本中创建的 cookie,我尝试使用 $.each(object, function(i ,e)) 迭代这些值以查看是否有任何结果。

我宁愿不必遍历这些值,而只使用在第一个 if 语句中看到的可链接代码。

我错过了什么/做错了什么?

【问题讨论】:

  • 尝试将此 var StoredSettings = $.cookie('qlToggled') 更改为 var StoredSettings = JSON.parse($.cookie('qlToggled'))
  • @MelanciaUK 解决了。发布为答案,我会标记它。
  • 已发布。很高兴我能帮上忙。

标签: javascript jquery json cookies


【解决方案1】:

您可以使用jQuery.parseJSON() 来实现。

jQuery.parseJSON(json)

返回:对象

描述:采用格式良好的 JSON 字符串并返回结果 JavaScript 对象。

文档:http://api.jquery.com/jQuery.parseJSON/

【讨论】:

    【解决方案2】:

    这对我有用

    PHP 代码

    setcookie('message', json_encode(['body'=>'Erro meu amigo', 'type'=>'danger']));
    

    JS 代码

    window.onload = function()
    {
        rc = Cookie.get('message'); //rc == result cookie
    
        if (rc.boolean === true) {
            var data = JSON.parse(decodeURIComponent(rc.data));
            alert(data.body.replace('+', ' '));
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2018-11-17
      • 1970-01-01
      • 2018-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-17
      • 2018-04-05
      • 2013-03-06
      相关资源
      最近更新 更多