如何用循环构建一个json对象?

RJP*_*RJP 6 javascript jquery json

我正在尝试遍历许多项目,并创建一个json对象.每个循环应该是对象上的一个新项目,但我遇到了一些问题.似乎只添加了一组项目,而不是多项.

这是我的代码:

jsonObj = {}
rows.each(function (index) {
    jsonObj["id"] = $this.find('.elementOne').val();
    jsonObj["name"] = $this.find('.elementTwo').text();

});
Run Code Online (Sandbox Code Playgroud)

这是我的json的样子:

{
    id: "3"
    name: "Stuff"
},
Run Code Online (Sandbox Code Playgroud)

这是我想要做的:

{
    id: "1"
    name: "Stuff"
},
{
    id: "2"
    name: "Stuff"
},
{
    id: "3"
    name: "Stuff"
}
Run Code Online (Sandbox Code Playgroud)

Que*_*tin 26

这里没有JSON.请不要混淆:

  • JavaScript对象(数据结构)
  • JavaScript对象文字(用于创建此类数据结构的代码)
  • JSON(基于对象文字表示法子集的数据格式)

如果需要有序的对象列表(或任何其他类型的JavaScript数据结构),请使用数组.数组有一种push方法.

var myData = [];
rows.each(function (index) {
    var obj = { 
        id: $this.find('.elementOne').val(),
        name: $this.find('.elementTwo').text()
    };
    myData.push(obj);
});
Run Code Online (Sandbox Code Playgroud)


gdo*_*ica 5

您可以覆盖对象,而不是在每次迭代时都为其添加新值。

使用数组的固定代码

jsonObj = [];
rows.each(function(index) {
    jsonObj.push({
        'id': $this.find('.elementOne').val(),
        'name': $this.find('.elementTwo').text()
    });
});?
Run Code Online (Sandbox Code Playgroud)