Отправка на сервер JSON с новой строкой

J Mas

Есть JSON

{dev: "что такое а потом \n
новая строка"}

Как отправить его на сервер, чтобы пришел с символом новой строки а не \n? Сейчас приходит не символ новой строки, а слэш и n, которая тоже печатается.

1 ответ

J Mas

К сожалению, то что Вы хотите сделать - невозможно и это в порядке вещей.

И это(\n) нормально!

При кодировании JSON символы новой строки специально экранируются, поскольку символы перехода строки в строке в JSON недопустимы и то, что вы хотите передать будет являться невалидным JSON'ом и при разборе вызовет ошибку.

Этого требует спецификация!

И наоборот: если Вы получите на сервере JSON с \n то после разбора JSON Вы обратно получите нормальную строку с нормальным символом перехода строки и никаких других специальных действий предпринимать не нужно. (Во всяком случае в тех библиотеках, которыми я пользуюсь - это так)

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

Кстати строковый ключ без кавычек валидатор у меня тоже не пропускает.

Валидный вариант будет выглядеть следующим образом:

{ "dev": "что такое а потом \nновая строка"
}

Доверьте библиотекам кодировать и декодировать JSON.

licensed under cc by-sa 3.0 with attribution.