Как JSON декодировать с \\ n в переполнении стека

У меня есть структура JSON, как показано ниже

 $json = '{"Number1":"{\"answerPhrase\":\"\\nTEXT,\\nTEXT
TEXT\\n\",\"dateUpdatedInMillisecond\":1234}"}';

При попытке извлечь текст и числа я могу сделать первый шаг, и он работает, но вложенный JSON имеет \\n и это не дает текст в качестве вывода

Код PHP, как показано ниже

$result = json_decode($json);
print_r($result);
echo "<br>";
foreach($result as $key=>$value){
echo $key.$value;
echo "<br>";
$result_nest = json_decode($value);
echo  $result_nest->answerPhrase;
echo "<br>";

Почему я не могу получить текст в фразе ответа? Работает, когда текста нет \\n

1

Решение

Вы можете попробовать ниже. Вы можете заменить \ n другими символами. Если вы хотите отобразить ввод в браузере, вы можете заменить \ n на
. Пожалуйста, попробуйте приведенный ниже код и дайте мне знать, работает ли он для вас.

<?php
$json = '{"Number1":"{\"answerPhrase\":\"\\nTEXT,\\nTEXT TEXT\\n\",\"dateUpdatedInMillisecond\":1234}"}';

$result = json_decode($json);
print_r($result);
echo "\n";
foreach($result as $key=>$value){
echo $key.$value;
echo "<br>";
$value = preg_replace("/\\n/", "___n___", $value);
$result_nest = json_decode($value);
$result_nest->answerPhrase = preg_replace("/___n___/", "\n", $result_nest->answerPhrase);

echo  $result_nest->answerPhrase;
echo "<br>";
}
0

Другие решения

Предпочитаю исправить json перед декодированием, а затем декодировать вспомогательный json.
Вы могли бы сделать второй шаг в цикле

    function test2()
{
$string = '{"Number1":"{\"answerPhrase\":\"\\nTEXT,\\nTEXT
TEXT\\n\",\"dateUpdatedInMillisecond\":1234}"}';$json = $this->decodeComplexJson($string);
$number = $json->Number1;
//Put this in a loop if you want
$decodedNumber = $this->decodeComplexJson($number);
var_dump($decodedNumber);
echo $decodedNumber->answerPhrase;

}

function decodeComplexJson($string) { # list from www.json.org: (\b backspace, \f formfeed)
$string = preg_replace("/[\r\n]+/", " ", $string);
$json = utf8_encode($string);
$json = json_decode($json);
return $json;
}
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector