2014-10-21 4 views
0

У меня есть большая строка json, которая декодируется из функции decodeURIComponent(). Теперь я пытаюсь разобрать эту строку на объект Json, используя функцию JSON.parse(). Когда я запускаю, он говорит «неожиданный токен синтаксиса m». У меня есть два сомнения здесь 1. Есть ли лучший инструмент для получения синтаксических исправлений, поскольку это большая строка. 2. Когда я даю ту же самую строку json для проверки в этом URL-адресе «http://jsonviewer.stack.hu», я получаю действительный объект json .. как это возможно.парсинг json с использованием JSON.parse() throws error

Действительный объект json, который я получаю в пункте 2, является тем, что мне нужно в моей программе. Пожалуйста, дайте мне несколько советов о том, как решить эту проблему.

вот моя JSON строка: https://drive.google.com/file/d/0Bz0478Hh7tBqS0pXUTBMTVFPZzA/view?usp=sharing

+0

Это не json, это оператор присваивания переменной javascript. – lincolnk

ответ

0

«М» жалуется на первого персонажа. Вам нужно удалить часть mandrill_events= в начале, чтобы она была действительной JSON.

0

Я лично использую пакет NPM jsonlint для проверки больших файлов в формате JSON.

npm install -g jsonlint 

Использование прямолинейное, и оно точно сообщит вам, где существует нарушение JSON.

Usage: jsonlint [file] [options] 

file  file to parse; otherwise uses stdin 

Options: 
    -v, --version   print version and exit 
    -s, --sort-keys   sort object keys 
    -i, --in-place   overwrite the file 
    -t CHAR, --indent CHAR character(s) to use for indentation [ ] 
    -c, --compact   compact error display 
    -V, --validate   a JSON schema to use for validation 
    -e, --environment  which specification of JSON Schema the validation 
          file uses [json-schema-draft-03] 
    -q, --quiet    do not print the parsed json to STDOUT [false] 
    -p, --pretty-print  force pretty printing even if invalid 
+0

Или просто http://jsonlint.com/ Я полагаю, что если вы не можете беспокоиться об установке узла и npm – Strelok

+0

Конечно, это тоже работает, когда у вас есть подключение к Интернету. Инструмент командной строки приятно иметь в вашем инструменте, хотя он может делать различные преобразования в контент JSON. Мне очень нравится работать в командной строке. –

0

mandrill_events= в начале - это, что нарушается JSON.parse(...). Удалите это.

0

Отвечая на ваш вопрос об инструменте, мне это нравится.

http://www.jsoneditoronline.org/

Просто вставьте YOUT JSON и нажмите стрелку вправо. Я работаю в обоих направлениях, и вы также можете редактировать JSON с правой стороны.

Если есть проблема с вашим объектом JSON, он точно скажет вам, где именно. Он использует jsonlint под капотом.

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

Error: Parse error on line 1: 
mandrill_events=[{"e 
^ 
Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '[', got 'undefined' 

Надеюсь, что это поможет.

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