Javascript 如何获取具有不同密钥名称和内容的嵌套json数组数据?

Javascript 如何获取具有不同密钥名称和内容的嵌套json数组数据?,javascript,jquery,arrays,json,Javascript,Jquery,Arrays,Json,我有一个json数组,我正试图从中获取数据。以下是我目前看到的: 下面是我用来生成这个的jquery/javascript,并提供我可以使用的数据,这里的重要部分是下面的节点对象,这是获得不同布局的原因: var getPosts = function() { $.ajax({ url: '/wp-json/posts?type=case-studies', data: { filter: {

我有一个json数组,我正试图从中获取数据。以下是我目前看到的:

下面是我用来生成这个的jquery/javascript,并提供我可以使用的数据,这里的重要部分是下面的
节点
对象,这是获得不同布局的原因:

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;
            // Simple ACF object
            //var textArea = base.meta.work_content[1];
            var items = [];
            for(var i = 0; i < nodes.length; i++)
            {
                var layout = nodes[i];
                var layoutNames = layout.acf_fc_layout;
                items.push( layout.acf_fc_layout['gallery']);
                console.log(layout);
            };
            $('<div>', {
                "class":'loaded',
                html:items.join('')
              }).appendTo(projectContainer);
          },
          cache: false
        });

    };
var getPosts=function(){
$.ajax({
url:“/wp json/posts?type=案例研究”,
数据:{
过滤器:{
“姓名”:
}
},
成功:功能(数据){
//在此处列出一些全局变量以获取post数据
//我们使用base作为全局对象来查找所需的资源
var base=数据[0];
控制台日志(基本);
var postContent=base.content;
var postTitle=base.title;
//主图像ACF对象
var featuredImage=base.meta.main_image;
//画廊ACF对象
var节点=base.meta.work\u内容;
//简单ACF对象
//var textArea=base.meta.work_content[1];
var项目=[];
对于(var i=0;i
**这里用json本身编辑**

json文件

这些项目的顺序非常重要,不能被操纵,我需要做的是获取每个对象,并使用不同的标记布局将每个对象附加到一个容器中

每个对象都有
acf_fc_layout
作为其不同的键,我的问题是如何区分使用该键获得的不同数据,并为每个对象提供不同的标记?我知道有些需要创建更多的循环来获取图像等,我可以做到这一点这里要记住的另一件重要事情是,将有多个相同的
acf\u fc\u布局
项目,但其中包含不同的内容。

干杯

var items=[];
var layoutNames=[];
对于(var i=0;i
您能提供json吗?因此我将根据上面的itedit进行操作@KevalbhattOperation means,根据json,我将创建附加变量的循环:Duse Object.getOwnPropertyNames(obj)获取关键字名称。步骤1)循环每个数据并获取唯一的关键字名称acf_fc_布局步骤2)循环每个唯一的关键字名称获取并使相关检查执行并分离内容。因此,要访问布局并将其放入正文中,我将使用:
if(layout.acf_fc_布局==$(this.val()){//do something}else{}
?这是否仍然尊重它们添加到后端时的顺序?因为您希望对不同的数据使用不同的标记,所以这就是方法。检查是否(acf_fc_布局==“gallery”),然后使用img标记else if(acf_fc_布局==“content_area”)然后tag..至于所有的情况。这会影响它们第一次进入的顺序吗?不会。如果您想按原样进行排序,那么首先在节点上进行循环,然后在布局名称的内部循环中进行循环。
var items = [];
var layoutNames = [];
            for(var i = 0; i < nodes.length; i++)
            {
                var layout = nodes[i];
                layoutNames.push(layout.acf_fc_layout);
                console.log(layout);
            };
//now loop on each layoutNames 
$(layoutNames).each(function (){
     for(var i = 0; i < nodes.length; i++)
            {                
                var layout = nodes[i];
                if(layout.acf_fc_layout==$(this).val())
                //Perform Operation either image / video / page layout
                console.log(layout);
            };
})