Javascript 如何获取具有不同密钥名称和内容的嵌套json数组数据?
我有一个json数组,我正试图从中获取数据。以下是我目前看到的: 下面是我用来生成这个的jquery/javascript,并提供我可以使用的数据,这里的重要部分是下面的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: {
节点
对象,这是获得不同布局的原因:
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);
};
})