Как проверить ошибки в JSON коде. Сервис JSONlint.

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

С его помощью можно проверить насколько синтаксически правильно (валидно) написан ваш код.
Все, что нужно сделать, это скопировать JSON-код в специальное поле для ввода и нажать на кнопку Validate.
Если код окажется валидным, то внизу появится вот такая надпись:

В противном случае, надпись может быть примерно следующей:

Довольно удобный инструмент, который можно использовать на практике. Возьмите его себе на вооружение.
Чтобы оставить сообщение, зарегистрируйтесь/войдите на сайт через:
SyntaxError: JSON.parse: bad parsing
JSON.parse() обрабатывает (парсит) строку в формате JSON. Это строка должна соответствовать формату, иначе будет выведена ошибка, что был нарушен синтаксис.
Examples
JSON.parse() не допускает запятые
Метод JSON.parse() не разрешает использование, так называемых, trailling запятых.
Обе строки выдадут ошибку типа SyntaxError:
JSON.parse("[1, 2, 3, 4,]"); JSON.parse(''); // SyntaxError JSON.parse: unexpected character // at line 1 column 14 of the JSON data
Необходимо убрать последние запятые в строках и тогда ошибки не будет:
JSON.parse("[1, 2, 3, 4]"); JSON.parse('');
Названия свойств должны быть в двойных кавычках
Вы не можете использовать одинарные кавычки в именах свойств. Например, ‘foo’.
JSON.parse(""); // SyntaxError: JSON.parse: expected property name or '>' // at line 1 column 2 of the JSON data
Вместо этого необходимо написать «foo»:
JSON.parse('');
Незначащие нули или плавающая точка без последующей цифры
Вы не можете использовать незначащие нули, например, 01. Плавающая точка должна всегда сопровождаться хотя бы одной цифрой после неё.
JSON.parse(''); // SyntaxError: JSON.parse: expected ',' or '>' after property value // in object at line 1 column 2 of the JSON data JSON.parse(''); // SyntaxError: JSON.parse: unterminated fractional number // at line 1 column 2 of the JSON data
Вместо этого напишите просто 1 без нуля и используйте хотя бы одну цифру после точки:
JSON.parse(''); JSON.parse('');
Смотрите также
Found a content problem with this page?
- Edit the page on GitHub.
- Report the content issue.
- View the source on GitHub.
This page was last modified on 7 авг. 2023 г. by MDN contributors.
Your blueprint for a better internet.
MDN
Support
- Product help
- Report an issue
Our communities
Developers
- Web Technologies
- Learn Web Development
- MDN Plus
- Hacks Blog
- Website Privacy Notice
- Cookies
- Legal
- Community Participation Guidelines
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998– 2024 by individual mozilla.org contributors. Content available under a Creative Commons license.
Разбор JSON в Python: типичные ошибки и их решения
JSON (JavaScript Object Notation) — это универсальный формат данных, который широко используется для обмена данными между веб-сервером и клиентом. При работе с JSON в Python часто возникают проблемы с разбором данных.
Рассмотрим типичную проблему. Допустим, есть файл с данными в формате JSON:
И есть скрипт на Python, который пытается прочитать эти данные:
import json from pprint import pprint with open('data.json') as f: data = json.load(f) pprint(data)
В результате выполнения этого скрипта может возникнуть ошибка json.decoder.JSONDecodeError . Это происходит из-за того, что данные в файле JSON не соответствуют правильному формату. В JSON каждый объект должен быть парой ключ-значение. Но в данном примере в массивах «masks» и «parameters» приведены только значения без ключей.
Чтобы исправить ошибку, необходимо убедиться, что все данные в JSON соответствуют правильному формату. В данном случае, исправленный файл может выглядеть так:
Таким образом, при возникновении ошибок при разборе JSON в Python важно внимательно проверять соответствие данных правильному формату JSON.
Форум
Mozilla выдаёт ошибку SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data при запуске на локальном сервере. При этом тот же код на реальном сервере работает на ура. В чем может быть дело?
Asmodey Сообщения: 338 Зарегистрирован: 18 апр 2012, 10:33
Re: Ошибка JSON.parse
Думаю, надо смотреть в сам ошибочный json.
КО.
s1mplyV Сообщения: 21 Зарегистрирован: 10 фев 2016, 15:05
Re: Ошибка JSON.parse
Возможно не хватает памяти. проверить сколько в php.ini, memory_limit стоит на хостинге и на локальном.
AVATOR Сообщения: 115 Зарегистрирован: 23 май 2013, 00:25 Откуда: Ukraine
Re: Ошибка JSON.parse
Проверь валидность json-а тут http://jsonlint.com/
Если он валидныый то добавь сюда пример и мы сможем тебе сказать что не так.
spocher102 Сообщения: 7 Зарегистрирован: 15 мар 2016, 00:09
Re: Ошибка JSON.parse
$(document).ready(function()< var imagesCount = 0; var maxImages = 6; var imagesList = <>; $(function () < var $image = $('#image'); $('#modal').on('shown.bs.modal', function () < $('.controls').hide(); $('.progress').hide(); $image.cropper(< built: function () < >>); >).on(‘hidden.bs.modal’, function () < $('#submit-avatar-button').attr('disabled', 'true'); $image.attr('src', ''); $image.cropper('destroy'); >); $image.on(‘load’, function()< $image.cropper(< aspectRatio: 1, crop: function(data)< var d = $image.cropper('getData'); d.filename = $image.attr('src'); $('#avatar-data').val(JSON.stringify(d)); >, dragMode: ‘crop’, autoCrop: true, autoCropArea: 1, movable: false, scalable: false, zoomable: false, toggleDragModeOnDblclick: false, background: false, viewMode: 0, minCropBoxWidth: 100, minCropBoxHeight: 100 >); $(‘#submit-avatar-button’).removeAttr(‘disabled’); >); $(‘.r_left’).on(‘click’, function()< $image.cropper('rotate', -90); >); $(‘.r_right’).on(‘click’, function()< $image.cropper('rotate', 90); >); $(‘#avatar-file’).bind(‘change’, function() < var data = new FormData(); var error = ''; jQuery.each($('#avatar-file')[0].files, function(i, file) < if(file.name.length < 1) < error = error + ' Файл имеет неправильный размер! '; >data.append(‘file-‘+i, file); >); $.ajax(< url: '/modules/upload_resize.php', data: data, cache: false, contentType: false, processData: false, type: 'POST',error: function (xhr, ajaxOptions, thrownError) < // alert(xhr.responseText); // alert(thrownError); >, xhr: function () < var xhr = $.ajaxSettings.xhr(); xhr.upload.addEventListener("progress", function (evt) < if (evt.lengthComputable) < var pB = $('.progress-bar'), percentComplete = evt.loaded / evt.total, progLabel = Math.round(percentComplete * 100) + "%"; pB.attr('style', 'width: '+progLabel); pB.text(progLabel); >>, false); return xhr; >, beforeSend: function () < $('.progress').show(); $('.controls').hide(); >, complete: function () < $('.progress-bar').text('Готово.'); $('.progress').delay(2000).fadeOut(500); $('.controls').show(); >, success: function(data) < $image.cropper('destroy'); $image.attr('src', data); >>); >); $(‘#submit-avatar-button’).on(‘click’, function ()< var imageList = $('#image_selection'), selectImage = imageList.children('#select'); var data = $('#avatar-data').attr('value'); $.ajax(< url: '/modules/addavatar.php', data: , type: 'POST', error: function(xhr, ajaxOptions, thrownError)< // alert(xhr.responseText); // alert(thrownError); >, success: function(data) ‘).insertBefore(selectImage); n.append(‘‘); imagesList[data.filename] = true; $(‘‘).appendTo(n) .on(‘click’, function() < imagesList[n.attr('id')] = false; n.remove(); imagesCount--; if (imagesCount >0) < $('#sendimages').removeAttr('disabled'); >else <$('#sendimages').attr('disabled', true);>$(‘#image-selection-button’).show(); >); imagesCount++; if (imagesCount>=maxImages) < $('#image-selection-button').hide(); >if (imagesCount > 0) < $('#sendimages').removeAttr('disabled'); >else <$('#sendimages').attr('disabled', true);>$(‘button[data-dismiss=»modal»]’).click(); > >); >); $(‘#sendimages’).on(‘click’, function ()< $('form#hidden').children('input[type="hidden"]').attr('value', JSON.stringify(imagesList)); $('form#hidden').children('input[type="submit"]').click(); >); >); >); function selectImage()
http://jsonlint.com/ Ошибку показывает:
Error: Parse error on line 1: $(document).ready(fu ^ Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '