使用jQuery从本地存储读取

时间:2013-05-30 15:12:47

标签: jquery json html5

我如何阅读所有值?关键是'任务',值正在跟随。

{"Assignments":[{"AssignedBy":"537000","AssignedBy_FirstName":" JOHN","AssignedBy_LastName":"WANDER"},
{"AssignedBy":"537000","AssignedBy_FirstName":" JOHN","AssignedBy_LastName":"WANDER"}],

"Comments":[{"CommentBy":"537000","CommentBy_FirstName":"JOHN"},  {"CommentBy":"537000","CommentBy_FirstName":" JOHN"}],

"Result":"SUCCESS",

"Tasks":[{"ACT_ARR":"05/20/2013 05:59:00 PM","ACT_DPT":"","ARR_FLT":"0434/20","ARR_GATE":"25"}],

"TasksCurrentStatus":[],

"Updated":"05/30/2013 02:54:09 PM"}

我试过......

$(document).ready(function() {
    var alltask = localStorage.getItem('Task'); 
    var single = alltask.getJSON('Assignments');     
    var acnum = '';
    var obj = $.parseJSON(single);
    $.each(obj, function(i, val){
    acnum += val.AssignedBy + " ";
    });     
        alert(acnum);
    });

但结果是:

  

无法找到作业

看起来我没有正确阅读JSON标签

2 个答案:

答案 0 :(得分:0)

这可能与您放入数据的方式有关,也可以将其输出。对我来说,当我存储我的数据时,我通常会使用JSON.stringify(),当我把它拿出来时,我会使用$.parseJSON()。这是一个小样本(使用sessionStorage,但它的工作方式相同):

var setVals = {
    authorized: $auth.is(":checked"),
    maxOrderAmount: $max.val(),
};

if (window.sessionStorage) {
    sessionStorage.setItem("originalValues", JSON.stringify(setVals));
}

var getVals = $.parseJSON(sessionStorage.getItem("originalValues"));

在没有使用stringify的情况下存储了一个对象,当我试图获取它时,我得到的是[Object object],所以我不确定sessionStorage是否可以处理对象文字,我会想象localStorage执行基本相同(唯一不同的是范围)。

答案 1 :(得分:0)

似乎localStorage.getItem('Task')已经返回了String,无需询问getJSON,只需解析它。

$(document).ready(function() {
  var alltask = localStorage.getItem('Task'); 
  //var single = alltask.getJSON('Assignments');     
  var acnum = '';
  var obj = $.parseJSON(alltask).Assignments; // or var obj = $.parseJSON(alltask)["Assignments"]
  $.each(obj, function(i, val){
    acnum += val.AssignedBy + " ";
  });     
  alert(acnum);
});