I'm interperting a json string into a variable using jquery's parseJSON() function. The problem is, it's turning my data into an object instead of a 2d array. Eg,
myData = $.parse(JSON(data));
myData.name// = "Bob"
The problem is, "name" is not supposed to be a key (assuming that is the correct term). Instead, it should be:
myData[0] // = "name"
myData[1] // = "Bob"
How would I convert this? Or is there a different method than using a for loop to walk through the index of an array (but still be able to access both key and value as a string, as you would in a 2d array).
EDIT: This is some json that is in use (Note it's MUCH longer). This is what is given for "data"
{"feat_3":"4356","feat_4":"45","feat_5":"564","feat_6":"7566"}
Once you've deserialized the data (e.g., you have
myData
, which is an object), you can loop through its keys usingfor..in
, and then build up an array that combines keys and values:Since
myData
is the result of deserializing the JSON indata
, we know thatmyData
is a generic object (e.g., just a{}
as opposed to anew Foo
or something like that), so we don't even needhasOwnProperty
. If we didn't know that, and we only wanted to enumeratemyData
's own keys and values, we would add ahasOwnProperty
check:There's no reason to do that in your case, unless someone has been mucking about with
Object.prototype
(in which case, take them behind the woodshed, give them a severe hiding, and then have them write "I will not muck about withObject.prototype
several hundred times on the chalkboard), but whenever you usefor..in
, it's always good to stop and think whether A) The object is guaranteed to be vanilla, and B) If not, do you want only its own properties, or do you also want ones it inherits?Array will be :