2012-06-18 2 views
2

строка в вопросе:Почему эта строка не будет разбираться с JSON?

'{"images":{"0":"<div style=\\"background:red;width:250px;height:250px;display:block;position:absolute;\\"></div>"}}' 

Я пробовал различные комбинации одинарных и двойных кавычках. Если вы ввернете эту строку в javascript-консоль Chrome в JSON.parse(), она отлично разбирается.

Проблема в том, что эта строка отправляется мне с сервера, я получаю ее через запрос .xhr(). Как только добавил, что шаг, независимо от перестановки одиночных и двойных кавычек я получаю ошибки как:

Unexpected Token '

Как запросить строку, как это и JSON.parse его к объекту?

+1

Если вы цитируете это часть строки, то это не json. удалите стартовые и закрывающие кавычки. И нет повод удвоить двойные кавычки. –

+0

dystroy, добавьте свой ответ, если хотите, очки, вот что случилось. –

ответ

2

Если вы котировка часть строки, то это не в формате JSON. удалить открывающий и закрывающую котировку.

и нет никаких причин, чтобы удвоить избежать двойных кавычек.

2

Это должно быть

var jsonstr = '{"images":{"0":"<div style=\"background:red;width:250px;height:250px;display:block;position:absolute;\"></div>"}}' 

используется двойной \\ вместо \

Есть хороший онлайн парсеры, которые могут помочь вам отладки. Например. http://json.parser.online.fr/

+0

Я положил этот штрих кода на консоль хром, а затем сделал JSON.parse (jsonstr); и получил сообщение об ошибке: Неожиданный токен b –

+0

Вероятно, это было 'b' из' b'ackground после первой неправильной двойной косой черты –

0

Вы можете просто выбрать, чтобы не использовать \». - двойные кавычки и одинарные кавычки вместо этого я надеюсь, что вы бы рендеринг этого DIV на HTML, так что даже это было бы прекрасно

{ 
    "images": { 
     "0": "<div style='background:red;width:250px;height:250px;display:block;position:absolute;'></div>" 
    } 
} 
Смежные вопросы