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
4 Answers
Reset to default 5You'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);
});