At the heart of it, JSON really is just a formal way of combining basic ol' JS arrays and objects to make an object which can be interchanged across servers and parsed readily.
So, how do you iterate over an array?
for (i=0; i<array.length; i++)
fn(array[i]);
What about enumerating the values in a JS object/map?
for ( key in obj )
fn(obj[key]);
Let's try putting those together then:
for (var i=0; i < data.length; i++) {
for ( var key in data[i]["mes"] ) {
var mName = key;
var inversion = data[i]"mes"][key]["Inversion"];
var fans = data[i]"mes"][key]["Fans"]
alert( [mName, inversion, fans].join(", "));
}
}
I will add, though, that your JSON structure is rather poor. On every level you have mes
as a key corresponding to an object, which is unduly doubly nested. In that scenario, mes
has no real meaning. Consider, instead, this structure:
var data = [
{
"mes": "January",
"Inversion": "1000",
"Fans": "1020"
},
{
"mes": "February",
"Inversion": "15500",
"Fans": "285"
}
];
This is simpler, and more logical, and (as you'll find) easier to work with:
for (var i=0; i < data.length; i++) {
var objToString = [];
for ( var key in data[i] ) {
objToString.push(data[i][key]);
}
alert( objToString.join(", "));
}