Fieldnames, dynamic arrays, oh my!

All right.

I’ve got data coming from a FlashCom server, coming in as a hash array.

I’m breaking the data like so:

myResult.onResult = function(data) {
	dataArray = new Array();
	for (var key in data) {
		for (var key1 in data[key]) {
			var keyVar = data[key][key1];
			var monthVar = key1;
			dataArray.push([key, monthVar, keyVar]);
		}
	}
};

I’d like to amend that second for statement to have fieldnames like so:

myResult.onResult = function(data) {
	dataArray = new Array();
	for (var key in data) {
		for (var key1 in data[key]) {
			var keyVar = data[key][key1];
			var monthVar = key1;
			dataArray.push({engine:key, date:monthVar, value:keyVar});
		}
	}
};

Of course it doesn’t work. But how could I get it so that it does? I can do something like this:

var my_array:Array = new Array();
my_array.push({password: "Bob", age:29});
my_array.push({password: "abcd", age:3});
my_array.push({password: "barb", age:35});
my_array.push({password: "catchy", age:4});

I just need to know how to do this dynamically. Any help would be more than wonderful. (Two for two IPaq…;)?)