javascript - 如何在不知道 javascript 中使用 JSON 的特定键的情况下获取属性值

标签 javascript json

我正在学校尝试做一个项目,但我一直在一个一个地显示待办事项列表,这意味着我正在尝试使用 HTML、CSS 制作一个基于 localStorage 和 JSON 的 Web 应用程序,和JS。 我有以下 JSON 对象,我希望在列表中显示列表,卡片内的待办事项列表定义什么是什么。

var listStorage = {
"lists":[{
  "pierre": ["Do the laundry", "Pick up James from school", "Call Charlie"]
},{
  "michal": ["Go to the Mall", "Eat ice-cream", "Launch my new APP"]
}]};

现在我需要做的是获取列表的名称(pierre,michal)并将它们显示在两个不同的 div 中,然后获取内部的值(Do the dress..)并将它们显示在每个名称下。 这就是我获取每个列表名称的方法:

for (var j = 0; j < listStorage.lists.length;j++){
  $('body').append($('div'));
  $('div').append(listStorage.lists[j]);
}

但是用于获取每个列表数组中的每个项目的第二个函数对我来说不起作用。 谁能帮我得到它吗? 请注意,列表名称是每个用户输入的未知字符串,并将其添加到本地存储中。 如果有什么不清楚的地方请随时问我,这是我第一次在这里提问。

最佳答案

你可以做到

// Get lists from localstorage
lists = [{
  "pierre": ["Do the laundry", "Pick up James from school", "Call Charlie"]
},{
  "michal": ["Go to the Mall", "Eat ice-cream", "Launch my new APP"]
}];

lists.forEach(list => {
  Object.keys(list).forEach(listName => {
    // Display todo list
    console.log(listName);
    console.log(list[listName]);
  })
})

但我不建议这样做。

更好的解决方案是标准化 list 对象的形状:

// Get lists from localstorage
lists = [
  {
    "owner": "Pierre",
    "tasks": ["Do the laundry", "Pick up James from school", "Call Charlie"]
  },
  {
    "owner": "Michal",
    "tasks": ["Go to the Mall", "Eat ice-cream", "Launch my new APP"]
  }
];

lists.forEach(list => {
  // Display todo list
  console.log(list.owner);
  console.log(list.tasks);
})

关于javascript - 如何在不知道 javascript 中使用 JSON 的特定键的情况下获取属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52015599/

相关文章:

javascript - 将 javascript 添加到 HTML 文件并使用文档就绪

javascript - Snap.svg 不起作用

javascript - 使用 fetch 检查内容

javascript - 如何使用 Chart.js 编辑折线图中的自定义工具提示?

javascript - 如何将现有的 d3 区域转换为堆叠区域?

javascript - 从我的greasemonkey脚本中监听一个事件

json - 从 Json 中删除行

java - 在 Java servlet 中处理大量数据

c# - 如何使用 MongoDB C# 客户端驱动程序将复杂的嵌套 JSON 数据结构保存到 MongoDB?

json - 使用 Mongoose/NodeJS 修改具有多个键的嵌套对象,而不替换现有键