如何使用Js在循​​环中动态生成JSON?

时间:2014-08-17 18:49:31

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

我正在制作一个PebbleJS项目。

我是noob,我一点一点地学习。所以在从网页上收到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 ...

1 个答案:

答案 0 :(得分:1)

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

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

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

如上所述设置初始结构:

var data = {
    sections: [
        {
            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)