最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Declare a JSON array of Objects and add items dynamically - Stack Overflow

programmeradmin0浏览0评论

This is stupid but i am missing something and could not reach the conclusion. I am trying to initialize a JSON Array and trying to add JSON Objects to it run time. For an example, I will be getting the list of repeated values from server something like below.

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

I have to create an array of object and fill these values in it.

I am trying to initialize an array like

var myArr = []; 

and I want to add object with properties to it dynamically, something like below.

var myobj = {}

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

I am getting the error that name can not be added to undefined, so i believe, my way of adding items to the object is incorrect.

I am trying to find a good example but could not get it. Any help would be appreciated.

Thanks

This is stupid but i am missing something and could not reach the conclusion. I am trying to initialize a JSON Array and trying to add JSON Objects to it run time. For an example, I will be getting the list of repeated values from server something like below.

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

I have to create an array of object and fill these values in it.

I am trying to initialize an array like

var myArr = []; 

and I want to add object with properties to it dynamically, something like below.

var myobj = {}

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

I am getting the error that name can not be added to undefined, so i believe, my way of adding items to the object is incorrect.

I am trying to find a good example but could not get it. Any help would be appreciated.

Thanks

Share Improve this question edited Jul 1, 2014 at 10:34 Gendaful asked Jun 30, 2014 at 16:26 GendafulGendaful 5,80213 gold badges59 silver badges77 bronze badges 1
  • You should pick a correct answer! – Waqar Alamgir Commented Jul 1, 2014 at 6:36
Add a ment  | 

4 Answers 4

Reset to default 5

You'll be wanting something like this:

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

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

Its simple init first the object or array you want to play dynamicly e.x:

var myArr = [], myObj = {};

Now if adding element to them:

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

More advanced :

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

You can init a new json object like this:

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

or add data in existance like this:

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);

Check this fiddle - http://jsfiddle/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);
});
发布评论

评论列表(0)

  1. 暂无评论