簡體   English   中英

如何獲取嵌套的json數組數據,其中包含不同的鍵名和內容?

[英]How can I get nested json array data with varying key names and content inside?

我有一個json數組,我試圖從中獲取數據。 這是我目前正在查看的內容:

我正在查看的數據

我在用來生成此數據的jquery / javascript下面,並提供了我可以使用的數據,這里重要的部分是下面的nodes對象,這是獲得不同布局的原因:

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
        });

    };

**用json本身在這里編輯**

json文件在這里

這些項目進入的順序非常重要,無法操作,我需要做的是獲取每個對象,並使用不同的標記布局將每個對象附加到容器中。

每個對象的acf_fc_layout密鑰都不相同,我的問題是如何區分通過該密鑰獲得的不同數據並為每個密鑰提供不同的標記? 我知道有些人將需要創建更多的循環來獲取圖像等,我可以做到這一點。 在此要記住的另一件重要的事情是,將有多個相同的acf_fc_layout項,但其中包含不同的內容。

干杯

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);
            };
})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM