передал html с проблемой php json_encode - PullRequest
2 голосов
/ 02 февраля 2011

У меня есть страница php для извлечения новых сообщений из базы данных и отправки отчета о них в формате json, если в новом сообщении его тело не будет содержать html, за исключением некоторых вставленных brs (<br/>)

, когда jsonполучил в javascript, я нахожу все BRS от этого (<br/>) до (<br\/>), поэтому его работа отключена

, когда я пытался сделать с другим HTML, как

<?php
$a="<html><br/></html>";
echo $a,"\n";
echo "Normal: ", json_encode($a), "\n";
echo "Tags: ",   json_encode($a,JSON_HEX_TAG), "\n";
echo "Apos: ",   json_encode($a,JSON_HEX_APOS), "\n";
echo "Quot: ",   json_encode($a,JSON_HEX_QUOT), "\n";
echo "Amp: ",    json_encode($a,JSON_HEX_AMP), "\n";
echo "All: ",    json_encode($a,JSON_HEX_TAG|JSON_HEX_APOS|JSON_HEX_QUOT|JSON_HEX_AMP), "\n\n";
?>

Выход был таким:

<html><br/></html> 
Normal: "<html><br\/><\/html>"
Tags: "\u003Chtml\u003E\u003Cbr\/\u003E\u003C\/html\u003E"
Apos: "<html><br\/><\/html>"
Quot: "<html><br\/><\/html>"
Amp: "<html><br\/><\/html>"
All: "\u003Chtml\u003E\u003Cbr\/\u003E\u003C\/html\u003E"

Это мой первый раз, когда я отправляю html в json, ранее всегда данные (простой текст).что вызвало это и что я могу сделать, чтобы решить эту проблему ??????????


спасибо всем тем, кто пытался помочь, потому что мне это нужно быстро, я использовал это

$("selector").html(result.messageBody.replace("\/","/"));

1 Ответ

3 голосов
/ 02 февраля 2011

В JavaScript для обозначения объектов (JSON) косые черты экранируются обратными косыми чертами, поэтому <br\/> является допустимым JSON, <br/> не является.

Если вы хотите работать со значениями JSON, вы должны декодировать его:

result = JSON.parse(result);
// or
result = eval(result); // simple but maybe unsecure!
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...