无法使用jQuery从REST API调用解析JSON提要

时间:2014-11-11 20:38:44

标签: jquery ajax json rest

我有一个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"
    }
}

2 个答案:

答案 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}}