2015-12-01 20 views
0

我试图根据通过Wordpress返回的JSON数据创建一个类别数组。电流输出是:通过多个JSON密钥循环

"property_categories_0_property_category":[ 
    "All" 
], 
"property_categories_1_property_category":[ 
    "Hospitality" 
], 
"property_categories_2_property_category":[ 
    "Retail" 
], 
"property_categories_3_property_category":[ 
    "Outdoor Advertising" 
], 
"property_categories":[ 
    "4" 
] 

我的JSON调用是:

$.ajax({ 
    url: '?json=1', 
    type: "POST", 
    success: function(data){ 
     var fields = data.page.custom_fields; 

     for (var i = 0; i < fields.property_categories[0]; i++) { 
     categories = fields.property_categories_ + i + _property_category[0]; 
     } 

    } 
}); 

我越来越因为试图内的串联键值for循环的错误。

有什么办法可以达到这个目的吗?

完整的JSON输出:

{ 
status: "ok", 
page: { 
id: 90, 
type: "page", 
slug: "properties", 
url: "http://delcodev:8888/properties/", 
status: "publish", 
title: "Properties", 
title_plain: "Properties", 
content: "<div class="map"><div class="marker" data-property-selector="hospitality" data-lat="39.9312311" data-lng="-74.95873819999997"><a style="display:block;" href="http://delcodev:8888/properties/aloft-mount-laurel/">aloft Mount Laurel</a><p>Morbi risus augue, maximus eget pulvinar sed, laoreet ac nulla. Donec et nunc ac ex rhoncus suscipit vel eu orci. Proin nunc nulla, iaculis eget condimentum quis, tincidunt et nisi. In ultrices, massa nec mattis semper, massa odio vulputate ipsum, vitae sollicitudin urna nisl a ante. In hac habitasse platea dictumst. Cras finibus volutpat tortor, &hellip; <a href="http://delcodev:8888/properties/aloft-mount-laurel/" class="more-link">Continue reading <span class="screen-reader-text">aloft Mount Laurel</span></a></p></div><div class="marker" data-property-selector="outdoor advertising" data-lat="39.9195342" data-lng="-75.14346219999999"><a style="display:block;" href="http://delcodev:8888/properties/lowes/">Lowes South Philadelphia</a><p>Donec bibendum lacus urna, sit amet vehicula nibh imperdiet non. Sed consequat diam et odio molestie, sed faucibus orci fringilla. Proin suscipit sit amet felis mattis venenatis. Pellentesque sit amet feugiat metus. Duis id sapien egestas, eleifend est sagittis, egestas tortor. Pellentesque quis mi vitae augue sodales commodo. In nec efficitur ante. Pellentesque et pharetra &hellip; <a href="http://delcodev:8888/properties/lowes/" class="more-link">Continue reading <span class="screen-reader-text">Lowes South Philadelphia</span></a></p></div><div class="marker" data-property-selector="retail" data-lat="39.9699176" data-lng="-74.91403300000002"><a style="display:block;" href="http://delcodev:8888/properties/starbucks-mount-laurel/">Starbucks Mount Laurel</a><p>Sed dignissim justo vitae sem gravida, ac sodales justo suscipit. Sed pulvinar iaculis magna, eu viverra nunc eleifend in. Phasellus bibendum dui at metus rhoncus, ac molestie enim tincidunt. Vivamus placerat ut sem non dignissim. Proin molestie id magna at interdum. Donec venenatis metus sit amet hendrerit consectetur. Maecenas commodo urna venenatis varius aliquet. Nunc &hellip; <a href="http://delcodev:8888/properties/starbucks-mount-laurel/" class="more-link">Continue reading <span class="screen-reader-text">Starbucks Mount Laurel</span></a></p></div><div class="marker" data-property-selector="retail" data-lat="39.948684" data-lng="-75.160755"><a style="display:block;" href="http://delcodev:8888/properties/starbucks-center-city/">Starbucks Center City</a><p>Integer sed nibh sit amet urna tristique pretium eget at arcu. Nulla nec enim interdum, suscipit ipsum at, rutrum orci. Phasellus est nibh, euismod nec ex a, malesuada semper metus. Duis ut blandit lectus, ac ullamcorper tortor. Phasellus vel porta augue, id maximus est. Proin aliquet euismod lacus, ut vestibulum leo dictum nec. Cum sociis &hellip; <a href="http://delcodev:8888/properties/starbucks-center-city/" class="more-link">Continue reading <span class="screen-reader-text">Starbucks Center City</span></a></p></div></div> ", 
excerpt: "", 
date: "2015-11-19 18:57:45", 
modified: "2015-11-24 21:44:48", 
categories: [ ], 
tags: [ ], 
author: { 
id: 1, 
slug: "delcodev", 
name: "delcodev", 
first_name: "", 
last_name: "", 
nickname: "delcodev", 
url: "", 
description: "" 
}, 
comments: [ ], 
attachments: [ ], 
comment_count: 0, 
comment_status: "closed", 
custom_fields: { 
client_logo_grid_0_client_logo: [ 
"39" 
], 
client_logo_grid_1_client_logo: [ 
"38" 
], 
client_logo_grid_2_client_logo: [ 
"35" 
], 
client_logo_grid_3_client_logo: [ 
"39" 
], 
client_logo_grid_4_client_logo: [ 
"36" 
], 
client_logo_grid_5_client_logo: [ 
"34" 
], 
client_logo_grid: [ 
"6" 
], 
mp4_video: [ 
"14" 
], 
webm_video: [ 
"15" 
], 
video_poster: [ 
"16" 
], 
property_categories_0_property_category: [ 
"All" 
], 
property_categories_1_property_category: [ 
"Hospitality" 
], 
property_categories_2_property_category: [ 
"Retail" 
], 
property_categories_3_property_category: [ 
"Outdoor Advertising" 
], 
property_categories: [ 
"4" 
] 
} 
} 
} 
+0

什么正从你的Ajax调用返回的数据结构? – mcgraphix

+0

@mcgraphix我正在使用这个JSON插件:[https://wordpress.org/plugins/json-api/other_notes/](https://wordpress.org/plugins/json-api/other_notes/),所以它只是一个基本的JSON树结构。我已经更新了我原来的帖子,包括完整的JSON响应 – ryjohnson

回答

1

你不串联任何键,你在这里做的是一笔或连接字符串,其中fields.property_categories_是一个属性,i是其他和_property_category[0]另外,你必须做在使用查找模板/括号标记,像这样:

var fields = data.page.custom_fields; 

    for (var i = 0; i < fields.property_categories[0]; i++) { 
    categories = fields['property_categories_' + i + '_property_category'][0]; 
    } 

例如: obj[property_name]

+0

啊,这很好地工作。谢谢! – ryjohnson