SyntaxError: JSON.parse: bad parsing

JSON или JavaScript Object Notation — это вездесущий формат данных, используемый всевозможными мобильными и веб-приложениями для асинхронного взаимодействия браузера и сервера. JSON — чрезвычайно популярный формат данных, с ним очень легко работать, он совместим со всеми основными языками программирования и поддерживается всеми основными браузерами. Однако, как и любой язык программирования, он выдает множество ошибок, когда решает, что сегодня не ваш день.

Знаете ли вы, что XML Minify помогает уменьшить размер файла. Он автоматически определяет и удаляет ненужные пробелы, отступы и новые строки. Маленький код позволяет веб-страницам быстро загружаться, что дает возможность большему количеству пользователей получить к ним доступ.

Синтаксические ошибки JSON.Parse

В большинстве веб-приложений почти все данные, передаваемые с веб-сервера, передаются в строковом формате. Чтобы преобразовать строку в JSON, мы используем функцию JSON.parse(), и это основная функция, которая выбрасывает ошибки. Почти все ошибки JSON.parse являются подмножеством ошибок типа SyntaxError. Отладочная консоль выбрасывает около 32 различных сообщений об ошибках, когда вы путаете данные JSON. И некоторые из них очень сложны для отладки; и да, я говорю о неожиданном символе не пробела после данных JSON.

Знаете ли вы, что JavaScript Minify делает ваши файлы JavaScript меньше. Он удаляет ненужные символы, включая пробелы, комментарии и точки с запятой. Он сокращает аббревиатуры и использует более короткие имена переменных и функций.

Почему возникает SyntaxError Horror?

SyntaxError — это наследуемый объект основного объекта ошибки. Основной причиной ошибки обычно является ошибка в синтаксисе файла JSON. Вы ошиблись и поставили » вместо ‘ и столкнулись с SyntaxError JSON.parse: unexpected character.

Как и любой язык программирования, JSON-файл имеет фиксированный синтаксис. Небольшие синтаксические ошибки приводят к ошибкам. Например, в следующем коде я забыл убрать запятую в конце строки

JSON.parse('[a,b, c, d, e, f,]');
Войти в полноэкранный режим Выйти из полноэкранного режима

Аналогично, в этом примере я забыл добавить }.

Эй, вы можете тестировать сайты Sitecore на самом надежном и масштабируемом облаке для тестирования CMS; проводить сквозное ручное или автоматизированное кроссбраузерное тестирование мобильных и веб-приложений, созданных с использованием $Sitecore.

Как поймать ошибку заранее?

Проблема с отладкой ошибок JSON заключается в том, что вы узнаете об одной ошибке за раз. Отладчики бросают первую найденную ошибку и останавливаются. Вам придется искать ошибки в регрессии. Обычно это не так сложно, как кажется.

Первый шаг — убедиться, что ваш JSON-файл идеален с самого начала. Здесь вам могут помочь инструменты линтинга JSON, такие как jsonlint.com с умным названием.

Если у вас нет никакого контроля над получаемым JSON-файлом, то следующим шагом будет добавление исключений catch вокруг вашего JSON.parse.

function validatingJSON (json) {

  var checkedjson

try {
    checkedjson = JSON.parse(json)
  } catch (e) {

  }

return checkedjson }
Вход в полноэкранный режим Выход из полноэкранного режима

Также, вот основные ошибки, связанные с JSON.parse, которые я очень кропотливо собрал из одного источника [https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/JSON_bad_parse] 😛

SyntaxError: JSON.parse: unterminated string literal
SyntaxError: JSON.parse: bad control character in string literal
SyntaxError: JSON.parse: bad character in string literal
SyntaxError: JSON.parse: bad Unicode escape
SyntaxError: JSON.parse: bad escape character
SyntaxError: JSON.parse: unterminated string
SyntaxError: JSON.parse: no number after minus sign
SyntaxError: JSON.parse: unexpected non-digit
SyntaxError: JSON.parse: missing digits after decimal point
SyntaxError: JSON.parse: unterminated fractional number
SyntaxError: JSON.parse: missing digits after exponent indicator
SyntaxError: JSON.parse: missing digits after exponent sign
SyntaxError: JSON.parse: exponent part is missing a number
SyntaxError: JSON.parse: unexpected end of data
SyntaxError: JSON.parse: unexpected keyword
SyntaxError: JSON.parse: unexpected character
SyntaxError: JSON.parse: end of data while reading object contents
SyntaxError: JSON.parse: expected property name or '}'
SyntaxError: JSON.parse: end of data when ',' or ']' was expected
SyntaxError: JSON.parse: expected ',' or ']' after array element
SyntaxError: JSON.parse: end of data when property name was expected
SyntaxError: JSON.parse: expected double-quoted property name
SyntaxError: JSON.parse: end of data after property name when ':' was expected
SyntaxError: JSON.parse: expected ':' after property name in object
SyntaxError: JSON.parse: end of data after property value in object
SyntaxError: JSON.parse: expected ',' or '}' after property value in object
SyntaxError: JSON.parse: expected ',' or '}' after property-value pair in object literal
SyntaxError: JSON.parse: property names must be double-quoted strings
SyntaxError: JSON.parse: expected property name or '}'
SyntaxError: JSON.parse: unexpected character
SyntaxError: JSON.parse: unexpected non-whitespace character after JSON data
Вход в полноэкранный режим Выйти из полноэкранного режима

Если это не помогло, то вас ждет долгий сеанс отладки. Оставьте комментарий ниже с вашей проблемой. Я могу помочь.

Оцените статью
Procodings.ru
Добавить комментарий