Trying to build a simple JSON object that contains an array of objects.
var forms = {};
var form = {};
forms.ID = 1;
forms.PackageName = "MyPackage";
forms.PackageForms = [];
form.Key = "0001XX";
form.Ordinal = 0;
forms.PackageForms.push(form);
form.Key = "0002XX";
form.Ordinal = 1;
forms.PackageForms.push(form);
but this Results in:
{"ID":1,"PackageName":"MyPackage","PackageForms":[{"Key":"0002XX","Ordinal":1},{"Key":"0002XX","Ordinal":1}]}
I understand why this is happening: var 'form' is still referring to the just pushed object. Without creating a different object for each item how can I reuse the var 'form'? This must be simple but it is eluding me.
UPDATE:
This seems to work and looks pretty clean
var forms = {};
forms.ID = 1;
forms.PackageName = "MyPackage";
forms.PackageForms = [];
function Form(Key, Ordinal) {
this.Key = Key;
this.Ordinal = Ordinal;
}
forms.PackageForms.push(new Form("0001XX", 0));
forms.PackageForms.push(new Form("0002XX", 1));