On the outermost level, a JSON object starts with a {
and end with a }
.
Sample data:
{ "cars": { "Nissan": [ {"model":"Sentra", "doors":4}, {"model":"Maxima", "doors":4}, {"model":"Skyline", "doors":2} ], "Ford": [ {"model":"Taurus", "doors":4}, {"model":"Escort", "doors":4} ] } }
If the JSON is assigned to a variable called data, then accessing it would be like the following:
data.cars['Nissan'][0].model // Sentra data.cars['Nissan'][1].model // Maxima data.cars['Nissan'][2].doors // 2 for (var make in data.cars) { for (var i = 0; i < data.cars[make].length; i++) { var model = data.cars[make][i].model; var doors = data.cars[make][i].doors; alert(make + ', ' + model + ', ' + doors); } }
Another approach (using an associative array for car models rather than an indexed array):
{ "cars": { "Nissan": { "Sentra": {"doors":4, "transmission":"automatic"}, "Maxima": {"doors":4, "transmission":"automatic"} }, "Ford": { "Taurus": {"doors":4, "transmission":"automatic"}, "Escort": {"doors":4, "transmission":"automatic"} } } } data.cars['Nissan']['Sentra'].doors // 4 data.cars['Nissan']['Maxima'].doors // 4 data.cars['Nissan']['Maxima'].transmission // automatic for (var make in data.cars) { for (var model in data.cars[make]) { var doors = data.cars[make][model].doors; alert(make + ', ' + model + ', ' + doors); } }
Edit:
Correction: A JSON object starts with {
and ends with }
, but it’s also valid to have a JSON array (on the outermost level), that starts with [
and ends with ]
.
Also, significant syntax errors in the original JSON data have been corrected: All key names in a JSON object must be in double quotes, and all string values in a JSON object or a JSON array must be in double quotes as well.
See: