【问题标题】:how to Dynamically generate JSON in a loop with Js?如何使用 Js 在循环中动态生成 JSON?
【发布时间】:2023-03-24 02:17:01
【问题描述】:

我正在用PebbleJS 做一个项目。

我是一个菜鸟,我正在一点一点地学习..所以在从网页接收 JSON 并将所有数据放入 localStorage 对象后,我想将我的变量放入 UI.Menu 窗口,即基本上是一个 JSON 变量,如下例所示:

var main = new UI.Menu({
sections: [{
  items: [
  {
    title: 'street name a',
    subtitle: 'ID 1121'
  }, {
    title: 'street name b',
    subtitle: 'ID 1431'
  }, {
    title: 'street name c',
    subtitle: 'ID 1907'
  },{
    title: 'street name d',
    subtitle: 'ID 1002'
  },{
    title: 'street name e',
    subtitle: 'ID 1330'
  },

        ]
}]
}); 

我试图在内部进行循环,但给了我错误...(伪代码)

for (var x=0;x<10;x++)
  {
    title: localStorage.title+x,
    subtitle: 'ID '+localStorage.title+x
  }

我需要在没有 jQuery 或其他 JS 框架的情况下制作这个,只有纯 javascript...

【问题讨论】:

  • 您可能想查看js forEach() statement。这将允许您迭代整个 JSON 对象,而无需知道它有多长。这样您就可以遍历 localstorage 对象,并继续推送到您定义的空白对象/数组,然后您应该有一个可以使用的对象。

标签: javascript json loops for-loop pebble-watch


【解决方案1】:

如果我正确理解您的问题,您想通过循环从您的第一个代码示例创建数据结构。

数据结构是一个具有一些属性和子对象(如数组)的对象。该结构仅在您的代码中定义对象。不涉及 json。

json 是 javascript 的一个子集,用于交换数据结构。它由仅带有 javascript 对象声明的纯文本文件组成,通常被解析以在内存中创建数据结构。通过在代码中声明您的数据结构,无需使用额外的 json 解析步骤。

要像上面那样设置初始结构:

var data = {
    sections: [
        {
            items: []
        }
    ]
}

比你得到的 items 数组:

var items = data.sections[0].items

您可以在这个数组中添加带有循环的项目:

for ( var x = 0; x < 10; x++ ) {
    var item = {
      title: localStorage.title + x,
      subtitle: 'ID ' + localStorage.title + x
    };

    items.push(item);
}

现在您可以使用数据对象构建您的 UI.Menu。

var main = new UI.Menu(data)

【讨论】:

  • 是的,你猜对了!!!这正是我想要做的!感谢您帮助我了解我需要做什么,如果我的问题不清楚,我很抱歉!哦,我有另一个给你@dreamlab,我尝试了开箱即用的解决方案,但它是不行的(没有显示菜单项)。当然我需要修饰一些东西,有没有办法可以测试,比如 jsfiddle? pebble 编译器不会抛出任何与菜单相关的内容。
  • 可以在jsfiddle中没有最后一行的情况下测试上面的代码。喜欢这里:jsfiddle.net/tedgp4fk。在控制台中,您可以检查传递给 UI.Menu 的数据结构是否正确。我不知道jspebble。但如果您有一个显示菜单的最小设置,我可以查看它并且可能会有所帮助。
猜你喜欢
  • 1970-01-01
  • 2017-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-10
相关资源
最近更新 更多