无法将JavaScript变量与JSON数据进行比较
我在localstorage中有一个以字符串形式存储在JSON数据中的表。我想将存储在这里的一个字段与一个单独的javascript变量进行比较 以下是我尝试过的:无法将JavaScript变量与JSON数据进行比较,javascript,json,html,local-storage,object-comparison,Javascript,Json,Html,Local Storage,Object Comparison,我在localstorage中有一个以字符串形式存储在JSON数据中的表。我想将存储在这里的一个字段与一个单独的javascript变量进行比较 以下是我尝试过的: var goalsStr = localStorage.getItem("goals"); var goalsObj = JSON.parse(goalsStr); for (i=0; i<goalsObj.goals.length; i++) { if (goal==goalsObj.goals[i].goal) {
var goalsStr = localStorage.getItem("goals");
var goalsObj = JSON.parse(goalsStr);
for (i=0; i<goalsObj.goals.length; i++) {
if (goal==goalsObj.goals[i].goal) {
//.....
//.....
}
}
它是存储在中的对象数组
所有这些“diff”、“duedate”都是从用户处获取的HTML表单数据
怎么了?我该怎么办?数据似乎已经是有效的JSON。你为什么要把它串起来?我想你只是想
var data = '{"goals": [{"goal":"'+goal+'","duedate":"'+date2+'","noofdays":"'+diff+'","active":"'+active+'"}]}';
localStorage.setItem("goals", data);
然后,当您将该值提取出来时,通过
var obj = JSON.parse(localStorage.getItem("goals"));
如果我们不知道
goalsObj
或goal
的值,我们就无法真正帮助您。你还必须解释你到底想要实现什么,问题是什么。你认为问题在于比较还是你知道?仅供参考,这个问题似乎与JSON无关(除非问题首先是生成正确的JSON)。它取决于什么是goal
及其类型。假设它们是对象/数组,则不能与==。您必须向我们确切显示存储在localStorage中的内容。@FelixKling我已编辑该问题以回答您的问题。@blunderboy是的。它们确实涉及对象和数组。如果不使用==,那么我还应该使用什么?是。你完全正确。但我仍然没有得到想要的输出。肯定还有其他错误。@user221287-此时您只需添加一些调试器代码>语句,在“开发工具”窗口打开的情况下运行代码,只需一步一步地浏览它,看看有什么问题。您的代码看起来不错,在拼接json字符串时,您可能犯了一个愚蠢的错误。这可能是问题所在:可能-您试图在不同的域上访问这段数据吗?不。不是在不同的域上,而是在我笔记本电脑的不同.html文件中。我的整个项目都离线了。
var obj = JSON.parse(localStorage.getItem("goals"));