Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用jQuery从本地存储读取数据_Jquery_Json_Html - Fatal编程技术网

使用jQuery从本地存储读取数据

使用jQuery从本地存储读取数据,jquery,json,html,Jquery,Json,Html,如何读取所有值?键为“任务”,值如下 {"Assignments":[{"AssignedBy":"537000","AssignedBy_FirstName":" JOHN","AssignedBy_LastName":"WANDER"}, {"AssignedBy":"537000","AssignedBy_FirstName":" JOHN","AssignedBy_LastName":"WANDER"}], "Comments":[{"CommentBy":"537000","Comm

如何读取所有值?键为“任务”,值如下

{"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标记

这可能与您输入数据的方式有关,以便能够将其取出。对我来说,当我存储数据时,我通常使用
JSON.stringify()
,当我取出数据时,我使用
$.parseJSON()
。下面是一个小示例(使用sessionStorage,但其工作原理相同):


没有使用stringify,存储了一个对象,当我试图获取它时,得到的只是[object object],所以我不确定sessionStorage是否可以处理对象文本,我可以想象localStorage的性能基本相同(唯一的区别是作用域)。

看起来像是
localStorage.getItem('Task')
已经返回字符串,无需请求
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);
});

您遇到了什么错误?“找不到作业”。看起来我没有正确读取json标记。因此,你尝试将一个变量的派生插入另一个变量,将派生的结果变量解析为一个变量,对解析后的变量执行each循环并添加到另一个空变量,然后向结果发出警报。我怀疑把它分成几个步骤并测试每个步骤可能会有所帮助。我们需要更多关于什么是
localStorage
以及getItem('Task')方法的信息;我想他在做什么。我的意思是,我认为您应该将
getItem('Task')
更改为
getItem('Tasks')
,因为JSON中没有任何“Task”。但是,在
任务
中也没有
作业
。任务是整个任务的“钥匙”,谢谢你的回答。我试过了。它仍然说“不能读取null的属性'Assignments'”。你能看到
localStorage.getItem('Task')
返回什么吗?它返回字符串还是[object object]?刚刚创建的并且看起来工作正常。首先我设置localStorage(你可以在其他地方执行),然后是我建议的代码。哦,所以我需要JSON.stringify()。谢谢。我会试试。好吧,假设你已经用
JSON.stringify(object\u to\u save)
将它保存到本地存储,你可以用
var obj=$.parseJSON(localStorage.getItem('Task');
)恢复整个对象。从那里你可以用
var assignments=obj.assignments
获得分配。
$(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);
});