Špatně si vykládáte, co váš prohlížeč zobrazuje. Pamatujte, že JSON je v podstatě prostý text, ale váš prohlížeč se jej snaží zobrazit jako HTML. \n
znaky NEJSOU respektovány zobrazeními v režimu HTML a zalomí text na první vhodný znak mezery. JSON dokáže perfektně zachovat \n
znaky uvnitř jeho řetězců bez problémů.
S největší pravděpodobností váš <br>
chyba pochází z <br>
vložení, které provádíte ve svém preg_replace
volání, protože NEJSOU ŽÁDNÉ <br>
tagy v původním JSON. Jinými slovy, chybu, kterou se snažíte opravit, způsobujete tím, že se pokoušíte opravit chybu, která by neexistovala, kdybyste se ji nepokoušeli opravit.