Преобразование строк в массиве JSON в разрывы строк: JSON_decode и nl2br

Я не могу получить приведенный ниже массив для замены возврата каретки и перехода на новую строку с разрывом HTML <br />

JSON Array:

{ "Фрукты":"Яблоко","Veggies":"Морковь \ г \ nCelery\ г \ п \ г \nCucumbers"}

Я пытаюсь это и не везет

$html = json_decode(nl2br($json),true);

Разрывы строк видны в исходном коде самого HTML, однако я не могу получить <br /> код для замены "новых строк".

Я также попробовал это предложение, и оно тоже не сработало: замена \r\n (символы новой строки) после запуска json_encode

3 ответа

Решение

Бежать nl2br() после декодирования JSON, а не в источнике массива JSON.

Возможно, вам стоит попробовать

$arJson = array( 'fruit' => 'apple', 
                 'veggies' => array( 'carrot', 'celery', 'cucumbers' ) );

header( 'Content-Type: application/json' );

print json_encode( $arJson );

Который возвращает JSON

Затем используйте jQuery или вашу любимую библиотеку (даже пользовательскую), чтобы отправить запрос ajax на страницу.

$.ajax({

    url: 'frtsnvgs.php',
    dataType: 'JSON',
    success: function( oData ) {
        $.each( oData, function( key, value ) {
            document.write( key + ': ' + value + '<br>' );
        });
    }

});

Попробуйте этот код. Это может помочь вам

$json = '{"Fruit":"Apple","Veggies":"Carrot\r\nCelery\r\n\r\nCucumbers"}';
$json = json_decode($json,true);
array_walk($json, function(&$val){$val = html_entity_decode(nl2br($val));});
echo "<pre>";
print_r($json);
echo "</pre>";
exit;

Использовать

$html = json_decode(nl2br($json,false),true);

Синтаксис: nl2br(string,xhtml)

С участием: xhtmlНеобязательный. Логическое значение, указывающее, следует ли использовать разрывы строк, совместимые с XHTML:

TRUE- По умолчанию. Вставки <br />

FALSE - Вставки <br>

с участием <br /> это делает ошибку json.

Другие вопросы по тегам