SyntaxError: неожиданное завершение ввода JSON при синтаксическом анализе json, но код все еще продолжает выполняться

#javascript #json #parsing

#javascript #json #синтаксический анализ

Вопрос:

У меня есть файл json с именем myjson.json, который выглядит следующим образом:

 {
    "num": 5
}
  

Теперь я делаю http-запрос, чтобы получить этот json:

    let http = new XMLHttpRequest();
   let url = "http://localhost/myjson.json";
   http.open("GET", url);

   http.onreadystatechange = (e) => {

       if(http.status === 200){
         try{
          let {num} = JSON.parse(http.responseText);
          console.log(num); //This Prints The Number 5 in the console
         }catch(err){
           console.log('Error parsing the num: '   err); //*This runs as well. The err = SyntaxError: Unexpected end of JSON input
         }
       }else{
         console.log('Error retrieving the num: '   http.status);
      }
   }

   http.send();
  

Итак, в консоли отображается число 5, так что, похоже, синтаксический анализ выполнен правильно, но я получаю следующую ошибку в консоли:

 Error parsing the index : SyntaxError: Unexpected end of JSON input
  

Похоже, это работает, но появляется эта ошибка. Что я могу сделать, чтобы устранить эту ошибку?

Комментарии:

1. Что дает печать http.responseText ? И вы можете попробовать без деструктурирования num , например. let num = JSON.parse(http.responseText); затем num = num.num

2. Он отображает точно такое же содержимое файла myjson.json

3. Сообщение » Ошибка при разборе индекса » не исходит из опубликованного вами кода