2013-04-05 2 views
0

я продолжаю получать ошибки JSON парсер (поджигатель консоли сказать «Там не нет дочерних объектов») для следующих данных:Ajax JSON Parser Ошибка

(String) вар данные из каждой итерации

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

и 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 совершенно пуст, потому что я не от того, насколько получать данные в формате JSON с AJAX в PHP

Любая помощь будет высоко оценен. Thnks

+0

Я просто попытался 'JSON.parse' на него, и он работал нормально –

+2

Нет необходимости разбирать, если вы уже установили тип данных = JSON .. Так как он уже будет разбирать строку JSON в качестве объекта javascript –

+0

Ошибка разбора происходит из-за (запятой) после последнего объекта строки, то есть после последнего «{« title »:« Nac »,« no1 »:« 1212 "," no2 ":" 12126 "} 'вам необходимо объединить данные с **] **, а не **,] ** – Ismail

ответ

1

JSON.parse дает объект JavaScript, если вы отправляете json в сообщение, тогда отправьте json не объект. Кроме того, вместо того, чтобы строить строку JSON, построить объект, а затем stringify его

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', 
     ... 

 Смежные вопросы

  • Нет связанных вопросов^_^