Неожиданный жетон НЕЗАКОННЫЙ: как удалить & цитата; и разрывы строк из JSON
Я получаю JSON с сервера при загрузке страницы, и он заполняется на странице с помощью Handelbars.java
, До сих пор все в порядке.
Однако я хотел бы получить этот объект json и сохранить его на объекте javascript, где я терплю неудачу.
Когда я пытаюсь сохранить его в объекте javascript, я делаю следующее:
var jsObject = "{{output.items}}"; // the output.items is the JSON retrieved on the template
Я получаю следующее ("e;
и переводы строк интерпретируются):
{
"profile": {
"name": "copernic",
"email": "copernic@cop.com"
}
....
}
Когда я должен получить следующее (без интерпретации разрывов строк):
{
"profile": {
"name": "copernic",
"email": "copernic@cop.com"
}
....
}
Так что это бросает мне ошибку на JavaScript Uncaught SyntaxError: Unexpected token ILLEGAL
,
При печати JSON на шаблоне HTML с помощью <pre>{{output}}</pre>
это выглядит просто отлично.
Есть ли у вас какие-либо идеи о том, как сохранить json, возвращенный с сервера при загрузке страницы, на объекте javascript, поскольку я не контролирую его, поскольку он НЕ поставляется с json?
Спасибо.
2 ответа
Ваш сервер обслуживает неверный формат JSON.
Ваш сервер должен обслуживать строку json с двойными кавычками.
{
"profile": {
"name": "copernic",
"email": "copernic@cop.com"
}
}
Если вам нужно служить хорошо сформированному JSON, вы можете попробовать с Gson. https://sites.google.com/site/gson/gson-user-guide
Поскольку содержание output.items
это строка, вот как вы можете продолжить.
eval("jsObject={" + object.items.replace(/"/g,'"')+"}");