Неожиданная ошибка токена Ruby on Rails JSON.parse - PullRequest
19 голосов
/ 27 февраля 2011

Я пытаюсь проанализировать данные JSON в приложении Rails 3 с помощью JSON.parse. Я получаю эту ошибку:

737: неожиданный токен в {\ "0 \": {\ "класс \": \ "окна \", \ "текст \": \ "Testing \", \ "стиль \": \ "позиция: абсолютный; верх: 8 пикселей; слева: 8 пикселей; ширина: 560 пикселей; высота: 290 пикселей; Z-индекс: 0; \ "}

Фактический JSON намного длиннее, но в основном он такой же.

Ответы [ 3 ]

38 голосов
/ 27 февраля 2011

Ну, мы можем ответить только на основе той части JSON, которую вы нам показали, но у нее есть две проблемы:

  1. Все символы кавычек (") экранированы;они не должны быть, если они не используются в строке с двойными кавычками, что, по-видимому, не является.
  2. Вам не хватает закрывающей скобки (}).

В противном случае он проходит на основе https://jsonlint.com/.

11 голосов
/ 17 июля 2012

В моем случае это был скрытый символ табуляции, который появлялся только когда я вставлял его в vim.

1 голос
/ 19 апреля 2018

Вы можете напрямую использовать JSON.Parse() встроенный метод:

content = "[{\"addon_id\":\"1\",\"addon_price\":\"5\"}]"
# OUTPUT at Console => "[{\"addon_id\":\"1\",\"addon_price\":\"5\"}]"

JSON.parse(content.gsub('\"', '"'))
# OUTPUT at Console => [{"addon_id"=>"1", "addon_price"=>"5"}]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...