我有一个简单的json对象,它会在每个对象中吐出4个具有完全不同属性的项目。我已经使用4个对象显示json,这些对象称为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]
进行访问,因为它不起作用。
干杯
答案 0 :(得分:1)
尝试使用以下内容:
$(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;
},
答案 1 :(得分:0)
然后只使用对象而不是数组。
如果两个对象具有相同的名称(如果可能的话),您可能想要考虑应该发生什么。