我有一个REST API端点,我试图使用$.ajax
调用来解析。我可以从端点URL看到JSON结构,但无法访问密钥:值对。我如何访问" Live"来自"类型"和"项目"来自"部分"?在这种情况下,没有跨域问题会阻碍我。这是我的代码:
<div>
<p class="type">Type:</p>
<p class="id">ID</p>
</div>
$(document).ready(function () {
$.ajax({
url: "http://myrestapiurl.com/"
}).then(function (data) {
$('.type').append(data.type);
$('.id').append(data.items.id);
});
});
JSON回复:
{
status: {
code: 200
},
entity: {
sections: [{
type: "Live",
items: [{}, {}, {}, {}, {}, {}],
entityType: "Section"
}],
entityType: "Content"
}
}
答案 0 :(得分:1)
您指定的json中没有data.items.id,但您可以像这样首先访问该数据:
var itemsArray = entity.sections[0].items ;
现在,如果项目(在每个对象中)中有任何id字段,则可以执行以下操作:
var itemsArray = entity.sections[0].items[0].id ; // 0 is the first object in the items
答案 1 :(得分:0)
我必须像这样创建另一个条件:
overlays = function(id){
var returnEL,
timeline = data.videoJason.entity.stream.timeline;
_.each(timeline,function(tEl){
//console.log('id---'.red,tEl);
if(tEl.id){
//console.log("tEl.id = ".red, tEl.id, " id = ".red, id, "cond = ".red, (parseInt(tEl.id,10) === parseInt(id,10)));
if(parseInt(tEl.id,10) === parseInt(id,10)){
//console.log("id matched cond".red);
if(tEl.overlays){
_.each(tEl.overlays, function(elObj){
console.log("OVERLAYS---".red, tEl.overlays)
returnEL = tEl.overlays;
});
}
//console.log('id---',tEl);
}
}else{
returnEL = undefined;
}
});
return returnEL;
},
然后,在模板中,使用另一个语句在对象数组中进行解析:
<dt>Overlay:</dt>
{{#each overlays}}
<dl class="list-unstyled">
<li><strong><i>Type:</i></strong> {{type}}</li>
<li><strong><i>Title:</i></strong> {{title}}</li>
<li><strong><i>Section:</i></strong> {{section}}</li>
<li><strong><i>Entity:</i></strong> {{entityType}}</li>
{{/each}}