Переносы строки и Json

Столкнулся с такой проблемой, есть текст с переносом строки внутри

Привет
Как дела?

Когда пытаюсь передать её через Ajax под видом JSON получается следующее

{custom:"Привет
Как дела?"}

Работающий перенос строки останавливает работу скрипта. Надо было убрать перенос для js, но что бы он одновременно работал в форме куда этот текст и вставлялся

$value = preg_replace('#[\n\r]+#', "\\n", $value);

Теперь все стало работать так как текст выглядит так

{custom:"Привет\nКак дела?"}

5 Responses to “Переносы строки и Json”

  1. Артём Курапов Says:

    Ага, сталкивался тоже с такой проблемой, только я ещё и субмитил перенос строки тоже. Ещё бывают проблемы с субмитом особых символов посредством ajax в IE.

  2. Mike Says:

    вообще то при генерации строки в json формате надо обрабатывать все спец.символы. Почему не обрабатываете кавычки?

  3. Mike Says:

    Да, и собственно предложенная замена не совсем корректна. Спец.символы в строках на js — это нормально, соответственно: “\n” -> ‘\n’, “\r” -> ‘\n’ и т.д.

  4. admin Says:

    Mike вы правы, но текст береться из из базы, а в базу я его кладу предварительно сэкранировав, поэтому необходимость отпадает в моем случае но грамотно конечно было бы обрабатывать.

  5. QoSyS Says:

    Такая же проблема, но при использовании регулярок для SimpleXML элементов. Использовал туже самую регулярку.

Leave a Reply