Неожиданный жетон НЕЗАКОННЫЙ: как удалить & цитата; и разрывы строк из JSON

Я получаю JSON с сервера при загрузке страницы, и он заполняется на странице с помощью Handelbars.java, До сих пор все в порядке.

Однако я хотел бы получить этот объект json и сохранить его на объекте javascript, где я терплю неудачу.

Когда я пытаюсь сохранить его в объекте javascript, я делаю следующее:

var jsObject = "{{output.items}}";  // the output.items is the JSON retrieved on the template

Я получаю следующее (&quote; и переводы строк интерпретируются):

{
    "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(/&quot;/g,'"')+"}");
Другие вопросы по тегам