jquery
  • ajax
  • json
  • parse-error
  • 2013-04-05 115 views 0 likes 
    0

    我一直得到一個JSON解析器錯誤 (螢火控制檯說「沒有子對象」)以下數據:阿賈克斯JSON解析器錯誤

    每次迭代

    var data='['; 
    data+= '{ "title": " Nac", "no1": "1212","no2": "12126"},'; 
    data+= '{ "title": " Nac", "no1": "1212","no2": "12126"},'; 
    data+= '{ "title": " Nac", "no1": "1212","no2": "12126"},'; 
    data+= ']'; 
    

    (字符串)VAR數據

    和JavaScript解析JSON

    var json = JSON.parse(data) 
    

    和jQuery AJAX請求

     $.ajax({ 
         type: "POST", 
         data: json, 
         url : 'ticket.php', 
         dataType: 'json', 
         async: false, 
         contentType : 'application/json; charset=utf-8', 
         error: function(jqXHR, exception) 
         { 
          if (jqXHR.status === 0) 
          { 
           $('.item').html("err"); 
          } else if (jqXHR.status == 404) 
          { 
           $('.item').html('err!'); 
          } else if (jqXHR.status == 500) 
          { 
           alert("err!"); 
          } else if (exception === 'parsererror') 
          { 
           $('.item').html('err parsererror'); 
          } else if (exception === 'timeout') 
          { 
           $('.item').html('err!'); 
          } else if (exception === 'abort') 
          { 
           $('.item').html('err!'); 
          } else 
          { 
          $('.item').html('err!'); 
          } 
         }, 
         success : function(data) 
         { 
          alert("okey"); 
         }   
        }); 
    

    和ticket.php完全是空的,因爲我不無如何從阿賈克斯在PHP

    任何幫助接收JSON數據將高度讚賞。 Thnks

    +0

    我只是想'JSON.parse'它和它的工作好 – 2013-04-05 00:31:58

    +2

    沒有必要,如果你已經設置的數據類型來解析= json的。因爲它將已經將JSON字符串解析爲一個javascript對象 – 2013-04-05 00:33:15

    +0

    解析錯誤是因爲字符串的最後一個對象後的(逗號),即最後一個'{「title」:「Nac」,「no1」:「1212 「,」no2「:」12126「}'你必須將數據與**連接**而不是**,] ** – Ismail 2014-10-27 19:52:43

    回答

    1

    JSON.parse爲您提供了一個JavaScript對象,如果您發送json在一篇文章然後發送json不是對象。此外,而不是建立一個JSON字符串,構建一個對象,然後它字符串化

    var data= [{ 
        "title": " Nac", 
        "no1": "1212", 
        "no2": "12126" 
    }, 
    { 
        "title": "New", 
        "no1": "12", 
        "no2": "121" 
    }, 
    { 
        "title": "San", 
        "no1": "1227", 
        "no2": "1" 
    }]; 
    var json = JSON.stringify(data); 
         $.ajax({ 
         type: "POST", 
         data: json, 
         url : 'ticket.php', 
         dataType: 'json', 
         async: false, 
         contentType : 'application/json; charset=utf-8', 
         ... 
    
    相關問題