声明对象的JSON数组并动态添加项

时间:2014-06-30 16:26:38

标签: javascript arrays json

这是愚蠢的,但我遗漏了一些东西,无法得出结论。 我正在尝试初始化JSON数组并尝试将JSON对象添加到运行时。 举个例子,我将从服务器获取重复值列表,如下所示。

"employees":[
    {"firstName":"John", "lastName":"Doe"},
    {"firstName":"Anna", "lastName":"Smith"},
    {"firstName":"Peter", "lastName":"Jones"}
]

我必须创建一个对象数组并在其中填充这些值。

我正在尝试初始化像

这样的数组
var myArr = []; 

我希望动态添加带有属性的对象,如下所示。

var myobj = {}

for(int i=0;i<length;i++)
{
myobj[i].name = serverrespOBJ.name;
myobj[i].lastName= 'serverrespOBJ.lastname';
myArr.push(myobj)
}

我收到名称无法添加到未定义的错误,所以我相信,我向对象添加项目的方式不正确。

我试图找到一个很好的例子,但无法得到它。任何帮助将不胜感激。

由于

4 个答案:

答案 0 :(得分:3)

你会想要这样的东西:

var data = { employees: [] }   // initially empty

data.employees.push( {
    firstName: 'John',
    lastName: 'Doe'
} );

答案 1 :(得分:1)

你可以像这样初始化一个新的json对象:

var jsonObj = {};
jsonObj.employees = [];
jsonObj.employees.push({"firstName":"Waqar", "lastName":"Alamgir"});

或者像这样添加数据:

var jsonObj = {
    "employees":[
        {"firstName":"John", "lastName":"Doe"},
        {"firstName":"Anna", "lastName":"Smith"},
        {"firstName":"Peter", "lastName":"Jones"}
    ]
};

jsonObj.employees.push({"firstName":"Waqar", "lastName":"Alamgir"});

console.log(jsonObj);

答案 2 :(得分:1)

首先简单地初始化要动态播放的对象或数组e.x:

var myArr = [], myObj = {};

现在,如果要向他们添加元素:

myArr.push(10);
myObj.new = 10 or myObj['new'] = 10

更高级:

myArr.push(myObj); //[10, {'new':10}] --> looks our object

答案 3 :(得分:1)

检查这个小提琴 - http://jsfiddle.net/FamBn/1/

<强> HTML:

<input type="text" id="firstname" />
<input type="text" id="lastname" />
<input type="submit" id="add" />
<div id="dsp"></div>

<强> JS:

var employees=[
{"firstName":"John", "lastName":"Doe"},
{"firstName":"Anna", "lastName":"Smith"},
{"firstName":"Peter", "lastName":"Jones"}
];

$('#add').click(function(){
    var fname=$('#firstname').val();
    var lname=$('#lastname').val();
    employees.push({
        firstName: fname,
        lastName: lname
    });
    var output = '';
    for (var i=0; i<employees.length; i++) {
        output += "FirstName: " + employees[i].firstName + " LastName: " + employees[i].lastName;
    }
    $('#dsp').html(output);
    console.log(employees);
});