如何在没有对象编号的情况下获取json对象



我有一个简单的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;
},
  1. 创建一个对象
  2. 在阵列上循环
  3. 获取数组中每个成员的名称
  4. 使用与您刚刚获得的名称相同的属性名称将每个成员复制到对象中

然后只使用对象而不是数组。

您可能需要考虑如果两个对象具有相同的名称(如果可能的话)会发生什么。

相关内容

最新更新