2013-10-15 2 views
3

Я новичок в JSON. Моя главная цель - создать jquery-карусель, который заполняется с помощью JSON. Когда у меня есть что-то вроде этого, и я пытаюсь проверить я получаю сообщение об ошибке:Добавить HTML в JSON

{ 
    "error":"", 
"hasMore":true, 
"html":"<!-- Cache: Off - --> <!-- MAIN COLUMN -->  <!-- PRODUCT RESULTS -->      
<li class=\"product\"> ..." 
} 

ошибка с «HTML», когда я запустить его в jsonlint.com я получаю эту ошибку:

Parse error on line 4: 

...: true,"html": "<!-- Cache: Off - 
----------------------^ 
Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '[' 

любая помощь была бы оценена

+0

Как вы кодируете json ?? –

+0

Ошибка произошла из-за разрывов строк –

+0

Почему вы хотите сохранить HTML-код в JSON, вы должны просто сохранить содержимое в своем файле JSON, т. Е. Ваш путь IMG и атрибут alt. –

ответ

1

Удалите дополнительные разрывы строк перед тем li tag,

{ 
    "error": "", 
    "hasMore": true, 
    "html": "<!-- Cache: Off --> <!-- MAIN COLUMN --> <!-- PRODUCT RESULTS --> <li class=\"product\"> ..." 
} 

Validated о n Jsonlint

2

Вы контент (HTML), включая разрыв строки.

Update:

Если вы используете PHP, пожалуйста nl2br(), чтобы избежать "\ п" перед кодированием в формате JSON.

Если вы используете другие языки, удалите/уберите «\ n» перед кодировкой json.

+1

не все используют PHP :) –

+1

Напоминаю. –

1

Заменить разрыв строки с \n, т.е. заменить это:

"key": "before linebreak 
after linebreak" 

с этим:

"key": "before linebreak\nafter linebreak" 
1

JSON не допускает появления новых строк внутри строк.

{ 
    "error":"", 
"hasMore":true, 
"html":"<!-- Cache: Off - --> <!-- MAIN COLUMN -->  <!-- PRODUCT RESULTS -->      
<li class=\"product\"> ..." 
} 

Должно быть:

{ 
    "error":"", 
    "hasMore":true, 
    "html":"<!-- Cache: Off - --> <!-- MAIN COLUMN -->  <!-- PRODUCT RESULTS -->     \n<li class=\"product\"> ..." 
} 

\n является то, что важно.

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