2014-02-23 44 views
0

我有問題,這個URL http://surfujpametno.roditelji.me/category/tv-emisija/?json=get_all_posts 我得到這個錯誤: 遺漏的類型錯誤:無法讀取的不確定JSON網址不確定

財產「網址」,但我沒有這個URL問題http://surfujpametno.roditelji.me/category/vijesti/?json=get_all_posts

這是我的代碼:

function json_parser_fun() { 

    var url = 'http://surfujpametno.roditelji.me/category/tv-emisija/?json=get_all_posts'; 
     $.ajax({ 
      url: url, 
      type: 'GET', 
      dataType: 'jsonp', 
       success: function(json){ 
        console.debug(json); 
        var JSONstring = JSON.stringify(json); 
        var myData = JSON.parse(JSONstring); 

        var postovi = ""; 

        var brojac = 1; 
        var ima = 0; 

        for(var i=0;i<myData.posts.length;i++) 
        { 
         if(brojac %2 ==0) 
          postovi = postovi + "<a onClick=moja_funkcija('"+ myData.posts[i].url +"') class='menu_item' href='#'><div class='menu_div"+2+"'><div class='image_div'><img style='height:40px;width:40px;' src='"+ myData.posts[i].attachments[0].url +"'/></div><div class='title_div'><p style='font-size:9px'>" + myData.posts[i].date + "</p><p style='font-size:12px'>" + myData.posts[i].title + "</p></div></div></a>"; 
         else 
          postovi = postovi + "<a onClick=moja_funkcija('"+ myData.posts[i].url +"') class='menu_item' href='#'><div class='menu_div'><div class='image_div'><img style='height:40px;width:40px;' src='"+ myData.posts[i].attachments[0].url +"'/></div><div class='title_div'><p style='font-size:9px'>" + myData.posts[i].date + "</p><p style='font-size:12px'>" + myData.posts[i].title + "</p></div></div></a>"; 
         brojac++; 
        } 

        document.getElementById("container").innerHTML = postovi; 
       }, 
       error: function(e) { 
        console.log(e.message); 
       } 
     }); 
} 
+0

在你得到了什麼路線錯誤?而且,爲什麼在這個世界上,你可以把它串起來然後解析呢?你應該能夠使用返回的javascript對象,因爲jQuery已經爲你解析了它。 – jfriend00

+0

myData.posts [i] .url將其更改爲myData.posts [i] .attachments [0] .url在訪問 – Triode

+0

之前還檢查附件的長度(與小提琴一起使用),但我又收到另一個錯誤' TypeError:myData.posts [i] .attachments [0]未定義,因此請在ELSE下檢查您的JSON格式 –

回答

0

在JSON響應有時附件是空的。 enter image description here

例子#1:空附件替換到urlNo_attachments_url

function json_parser_fun() { 

    var url = 'http://surfujpametno.roditelji.me/category/tv-emisija/?json=get_all_posts'; 
    var urlNo_attachments_url = 'http://animatika.ru/netcat_files/userfiles/3/facepalm.jpg'; 
     $.ajax({ 
      url: url, 
      type: 'GET', 
      dataType: 'jsonp', 
       success: function(json){ 
        console.debug(json); 
        var JSONstring = JSON.stringify(json); 
        var myData = JSON.parse(JSONstring); 

        var postovi = ""; 

        var brojac = 1; 
        var ima = 0; 

        for(var i=0;i<myData.posts.length;i++) 
        { 
         if(brojac %2 ==0) 
          postovi = postovi + "<a onClick=moja_funkcija('"+ myData.posts[i].url +"') class='menu_item' href='#'><div class='menu_div"+2+"'><div class='image_div'><img style='height:40px;width:40px;' src='"+ (myData.posts[i].attachments && myData.posts[i].attachments[0]?myData.posts[i].attachments[0].url:urlNo_attachments_url) +"'/></div><div class='title_div'><p style='font-size:9px'>" + myData.posts[i].date + "</p><p style='font-size:12px'>" + myData.posts[i].title + "</p></div></div></a>"; 
         else 
          postovi = postovi + "<a onClick=moja_funkcija('"+ myData.posts[i].url +"') class='menu_item' href='#'><div class='menu_div'><div class='image_div'><img style='height:40px;width:40px;' src='"+ (myData.posts[i].attachments && myData.posts[i].attachments[0]?myData.posts[i].attachments[0].url:urlNo_attachments_url) +"'/></div><div class='title_div'><p style='font-size:9px'>" + myData.posts[i].date + "</p><p style='font-size:12px'>" + myData.posts[i].title + "</p></div></div></a>"; 
         brojac++; 
        } 

        document.getElementById("container").innerHTML = postovi; 
       }, 
       error: function(e) { 
        console.log(e.message); 
       } 
     }); 
} 

例2:如果是空的附件 - 後刪除

function json_parser_fun() { 

    var url = 'http://surfujpametno.roditelji.me/category/tv-emisija/?json=get_all_posts'; 
     $.ajax({ 
      url: url, 
      type: 'GET', 
      dataType: 'jsonp', 
       success: function(json){ 
        console.debug(json); 
        var JSONstring = JSON.stringify(json); 
        var myData = JSON.parse(JSONstring); 

        var postovi = ""; 

        var brojac = 1; 
        var ima = 0; 

        for(var i=0;i<myData.posts.length;i++) 
        { 
      if(myData.posts[i].attachments && myData.posts[i].attachments[0]){ 
         if(brojac %2 ==0) 
          postovi = postovi + "<a onClick=moja_funkcija('"+ myData.posts[i].url +"') class='menu_item' href='#'><div class='menu_div"+2+"'><div class='image_div'><img style='height:40px;width:40px;' src='"+ myData.posts[i].attachments[0].url +"'/></div><div class='title_div'><p style='font-size:9px'>" + myData.posts[i].date + "</p><p style='font-size:12px'>" + myData.posts[i].title + "</p></div></div></a>"; 
         else 
          postovi = postovi + "<a onClick=moja_funkcija('"+ myData.posts[i].url +"') class='menu_item' href='#'><div class='menu_div'><div class='image_div'><img style='height:40px;width:40px;' src='"+ myData.posts[i].attachments[0].url +"'/></div><div class='title_div'><p style='font-size:9px'>" + myData.posts[i].date + "</p><p style='font-size:12px'>" + myData.posts[i].title + "</p></div></div></a>"; 
         brojac++; 
      } 
        } 
        document.getElementById("container").innerHTML = postovi; 
       }, 
       error: function(e) { 
        console.log(e.message); 
       } 
     }); 
}