Отобразить перенос строк из json ответа

192
29 декабря 2018, 22:40

Получаю ответ ajax'ом от сервера в формате json такого вида: {"success":true,"data":{"answer":"first line\r\nsecond line boom\r\n123","answer_id":433}}

Потом раскидываю данные под местам при формировании html блока и вывожу, т.е. в нужном месте например +respose.data.answer+

Проблема в том, что текст в данном случае текст у меня сплошняком, т.е. пробелы есть, а переносы строк не отрабатывают.

Была мысль перед вставкой в html регуляркой прогнать и заменить \n на <br>, но, думаю, это явно неправильный вариант решения. Как быть?

Answer 1

Можно разбить строку методом .split() на массив и вывести каждую в своем теги <p>

<div id="app"></div> 
 
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script> 
 
<script> 
  const str = "first line\r\nsecond line boom\r\n123"; 
  const list = str.split(/\r\n/); 
 
  const $p = $('<p class="text" />'); 
  
  const paragraphs = list.map(txt => { 
    return $p.clone().text(txt); 
  }); 
 
  $('#app').append(paragraphs); 
</script>

READ ALSO
Не могу получить данные из sql

Не могу получить данные из sql

Нужно получить данные из бд и переписать их на переменные напримерНе работает запрос query2

187
Парсинг Razor страниц в отдельном AppDomain

Парсинг Razor страниц в отдельном AppDomain

я пытаюсь написать библиотеку которая будет заниматься отправкой сообщение на emailМне необходимо сделать парсинг Razor страниц, я наше библиотеки...

179
Инициализация в духе массива

Инициализация в духе массива

Пишу array-like класс, так что хотелось бы, чтобы процесс инициализации экземпляра моего класса был максимально приближен к привычной инициализации...

179
Появление строки по истечении времени

Появление строки по истечении времени

Мне нужно чтобы в этом моменте, по истечении, к примеру, 5 секунд появлялось сообщение «Need a clue?»

201