Что мне нужно скрыть в моем HTML (ответ JSON) - PullRequest
3 голосов
/ 15 июня 2009

Мой ответ JSON выглядит так:

{rc: "200", test: "", user: "<div class='sub1'>
                <div class='avatar'>                    
                    <a href='/blah'>blah</a><br />
                    <strong>0</strong>
                </div>
                <div class='sl'>
                    <p>
                        you droppped the ball this time
                    </p>
                </div>
                <div class='clear'>
                </div>                        
            </div>"}

Обновление

Я обновил свой код, чтобы поставить кавычки в значения ключа, все еще не работает:

{"rc": "200", "m" : "", "o": "<div class='s1'>
            <div class='avatar'>                    
                <a href='\/asdf'>asdf<\/a><br \/>
                <strong>0<\/strong>
            <\/div>
            <div class='sl'>
                <p>
                    444444444
                <\/p>
            <\/div>
            <div class='clear'>
            <\/div>                        
        <\/div>"}

Ответы [ 4 ]

3 голосов
/ 15 июня 2009

Я использовал jsonlint , чтобы проверить ваш последний пример, и разрывы строк - это то, что он пометил. Когда они были удалены, это подтверждено.

{
    "rc": "200",
    "m" : "",
    "o": "<div class='s1'><div class='avatar'><a href='\/asdf'>asdf<\/a><br \/><strong>0<\/strong>      <\/div>    <div class='sl'><p>444444444<\/p><\/div><div class='clear'><\/div><\/div>"
}
1 голос
/ 15 июня 2009

В вашем примере вам не придется ничего избегать. Но если HTML идет с двойными кавычками, вам, очевидно, придется их избегать.

1 голос
/ 15 июня 2009

С вашими HTML-значениями все в порядке, но ключи объекта JSON должны быть заключены в кавычки.

Из JSON RFC :

2,2. Объекты

Представлена ​​структура объекта в виде пары фигурных скобок
окружающий ноль или более имя / значение пары (или члены). Имя
строка.

и

2.5. Строки

Представление строк аналогично соглашениям, используемым в C
семейство языков программирования. строка начинается и заканчивается
кавычки.

Кроме того, если вы выводите этот объект JSON внутри тегов сценария HTML-страницы, вы должны экранировать последовательность </ "закрывающих тегов HTML согласно <a href="http://www.w3.org/TR/REC-html40/appendix/notes.html#h-B.3.2" rel="nofollow noreferrer"> этому приложению в спецификации HTML 4 .

0 голосов
/ 15 июня 2009

Вам не нужно экранировать HTML в строке JavaScript. Что именно вы пытаетесь сделать / в чем проблема? Посмотрите на функцию escape() - она ​​может помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...