mar*_*art 7 javascript arrays json element
我如何引用JSON(Javascript)对象的元素.例如: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>
Run Code Online (Sandbox Code Playgroud)
Cra*_*ast 12
那里面的JSON不是很好,在代理值的情况下,第二个键将覆盖第一个.
你可能意味着:
"Agents" : [
{"name" : "Bob Barker"},
{"name" : "Mona Mayflower"}
],
Run Code Online (Sandbox Code Playgroud)
然后你将访问第一个代理商的名称
homes[0]['Agents'][0]['Name']
Run Code Online (Sandbox Code Playgroud)
同样,要从列表中获取其中一个值,您可以执行类似于以下操作的操作:
homes[0]['Listings'][0]['city']
- or -
homes[0].Listings[0].city
Run Code Online (Sandbox Code Playgroud)
点语法可以在有效标识符的任何地方使用,否则您需要使用数组语法.
作为旁注,我不确定数据的结构,但是你可以消除将[]整个结构封装在一个数组中的外层.那么你就不需要homes[0]['Listings']简单地访问所有内容了homes['Listings'].
您的JSON语法错误.您不能在对象中使用相同的键两次.相反,你需要一个数组:
var homes = {
"Agents" : [
{ "name" : "Bob Barker" },
{ "name" : "Mona Mayflower" }
],
...
}
Run Code Online (Sandbox Code Playgroud)
然后您可以像这样访问代理:
homes.Agents[1] // => { "name": "Mona Mayflower" }
// or
homes.Agents[1].name // => "Mona Mayflower"
Run Code Online (Sandbox Code Playgroud)
您应该为对象属性指定唯一的名称。在您的示例中,第二个名称属性将覆盖第一个名称属性,以便 home[0].Agents.name 将始终为“Mona Mayflower”。
一旦你排序完毕,我想你正在寻找这个:
homes[0].Agents.name
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
40262 次 |
| 最近记录: |