jquery
  • ajax
  • json
  • parse-error
  • 2013-04-05 88 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', 
         ... 
    
    相关问题