How do I refer to an element of JSON (Javascript) object. exampe: alert(homes.Agents[1].name);
<script>
    var homes = [
 {
    "Agents" : {
        "name" : "Bob Barker",
        "name" : "Mona Mayflower" 
    },
    "Listings" : [
        {
            "h_id": "3",
            "city": "Dallas",
            "state": "TX",
            "zip": "75201",
            "price": "162500" 
        },
        {
            "h_id": "4",
            "city": "Bevery Hills",
            "state": "CA",
            "zip": "90210",
            "price": "319250" 
        },
        {
            "h_id": "5",
            "city": "New York",
            "state": "NY",
            "zip": "00010",
            "price": "962500" 
        } 
    ]
}
];
</script> 
                That's not exactly very good JSON above there, in the case of the Agents value the second key will override the first.
You probably meant:
 "Agents" : [
     {"name" : "Bob Barker"},
     {"name" : "Mona Mayflower"} 
 ],
Then you'd access the first agent's name as
homes[0]['Agents'][0]['Name']
Similarly, to get one of the values from the Listings, you'd do something akin to:
homes[0]['Listings'][0]['city']
- or -
homes[0].Listings[0].city
The dot syntax can be used wherever there is a valid identifier, else you need to use the array syntax.
As a side note, I'm not sure the structure of the data, but it's possible that you can eliminate the outer-level [] that's enclosing your whole structure in an array. Then you wouldn't need to access everything as homes[0]['Listings'] and instead simply homes['Listings'].
Your JSON syntax is wrong. You can't have the same key twice in an object. Instead, you need an array:
var homes = {
  "Agents" : [
    { "name" : "Bob Barker" },
    { "name" : "Mona Mayflower" }
  ],
  ...
}
Then you can access the agents like so:
homes.Agents[1] // => { "name": "Mona Mayflower" }
// or
homes.Agents[1].name // => "Mona Mayflower"
                        Homes is an Array, so your first accessor is index based.
homes[0]
Agents is an Object, and Object containing two keys of the same name. That is a no-no.
If you are defining this data yourself, you should change
"Agents": {
    "name" : "Bob Barker",
    "name" : "Mona Mayflower"
}
to
 "Agents": [
        {"name" : "Bob Barker"},
        {"name" : "Mona Mayflower"}
    ]
Then you could access the data in question by
homes[0].Agents[1].name
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With