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

how to Dynamically generate JSON in a loop with Js?

本文关键字:动态 JSON 循环 何使用 Js      更新时间:2023-09-26

我正在用卵石js做一个项目。

我是一个新手,我正在一点一点地学习…所以从一个网页收到JSON后,把所有的数据在localStorage对象,我想把我的变量在UI。菜单窗口,它基本上是一个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…

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

数据结构是具有一些属性和子对象(如数组)的对象。结构体只是在代码中定义对象。不涉及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了。

var main = new UI.Menu(data)