我有一个简单的json对象,它吐出4个项目,每个项目的属性完全不同。我已经得到了显示的json,其中有4个对象被称为meta.work_content
,如下所示:
[Object, Object, Object, Object]
我可以在控制台中打开这些,然后看到这样的对象:
0: Object
1: Object
2: Object
3: Object
我可以更深入地了解每一个等等。在我的javascript中,我得到了一个简单的ajax请求,通过以下设置获取项目:
var getPosts = function() {
$.ajax({
url: '/wp-json/posts?type=case-studies',
data: {
filter: {
'name': _last
}
},
success: function ( dataS ) {
//List some global variables here to fetch post data
// We use base as our global object to find resources we need
var base = dataS[0];
console.log(base);
var postContent = base.content;
var postTitle = base.title;
// Main Image ACF object
var featuredImage = base.meta.main_image;
// Gallery ACF object
var nodes = base.meta.work_content;
// output ACF objects
console.log(nodes);
},
cache: false
});
};
现在是棘手的部分,我想访问每个meta.work_content
对象,但不使用它来访问base.meta.work_content[0], base.meta.work_content[1]
等,因为每个项目的顺序都会改变,所以这些数字将无关紧要。
项目需要根据其对象名称而不是[0],[1],[2]
进行访问,因为这是不起作用的。
干杯
尝试使用以下方法:
$(document).ready(function() {
var objects = {
// Key `object1` which contains sertain properties
object1: { name: "Name" },
// Key `object2` which contains sertain properties
object2: { firstname: "Fname" }
};
alert(objects.object1.name); // eg Name
alert(objects.object2.firstname); // eg Fname
// Check if object exists
if(objects.object1)
{
// Do something with the properties of object1
}
});
更新
使用您的示例:
success: function ( dataS ) {
var nodes = dataS; // Eg nodes is like objects in my example above
// Object 1
var base = nodes.object1; // Eg object1 is the name of your object
var postContent = base.content;
var postTitle = base.title;
var featuredImage = base.meta.main_image;
},
- 创建一个对象
- 在阵列上循环
- 获取数组中每个成员的名称
- 使用与您刚刚获得的名称相同的属性名称将每个成员复制到对象中
然后只使用对象而不是数组。
您可能需要考虑如果两个对象具有相同的名称(如果可能的话)会发生什么。