使用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);
});