Adding something to the top of a JSON object

javascript, jquery, json

Solution

In JS, object properties' order is not guaranteed. Therefore, even if they are ordered in the JSON string, when parsed as a JS object, you will never predict in what order they come up.

Better use arrays instead. You could use the `unshift()` method to put the item in the first index.

var data = [bar,bar2,bar3];

data.unshift(newItem);

//data = [newItem,bar,bar2,bar3];

Problem

I have a JSON object which is initiated when the page is loaded, like this: ``` data[foo] = bar; data[foo2] = bar2; data[foo3] = bar3; ``` Is there a way to inject an element before the first `foo` element, so that when doing a `for var i in data`, the new element will be looped through before the elements that were added when the object was initiated? The reason is, I'm displaying some items to the user. When the user adds a new item via javascript, I want this new item to be displayed above all the existing items, however when I add the new item, i.e ``` data[newItem] = newItem; ``` Then the JSON object looks like this: ``` data[foo] = bar; data[foo2] = bar2; data[foo3] = bar3; data[newItem] = newItem; ``` Instead of how I want, which is: ``` data[newItem] = newItem; data[foo] = bar; data[foo2] = bar2; data[foo3] = bar3; ``` Any ideas?

Original source

Related problems