try this: Since you are storing the hashes in an array. It seems, I could be wrong, that you want to access array elem position - 1 , per your product ID's. IF your ID's were varies, ie.. 123, 587, ABC987, then the following wouldn't work.
var ProductList = [
{"1": {Name: "Item name", Price: "0.99"}},
{"2": {Name: "Item name", Price: "0.99"}},
{"3": {Name: "Item name", Price: "8.99"}},
{"4": {Name: "Item name", Price: "8.99"}}
];
var prodRef = 1; // in this example
ProductList[prodRef - 1][prodRef].Name;
I would personally do the following, in setting up your object.
var ProductList = {
"1": {Name: "Item name", Price: "0.99"},
"2": {Name: "Item name", Price: "0.99"},
"3": {Name: "Item name", Price: "8.99"},
"4": {Name: "Item name", Price: "8.99"}
};
// so, you can just always access it via your productID.
var prodRef = 4;
ProductList[prodRef].Name