2011-02-02 66 views
2

我有AA PHP頁面從數據庫中獲取新的消息和JSON發送關於他們的報告是否有新郵件的正文會包含除了一些插入BRS(<br/>transmited HTML用PHP json_encode問題

當沒有HTML收到JSON在JavaScript中我找到這個(<br/>)coverted所有BRS到(<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" 

了我第一次以JSON發送HTML以前總是數據(純文本)。 是什麼導致了這個,我能做些什麼來解決這個問題??????????


感謝所有那些誰試圖迅速幫助,因爲我需要它,我用這個

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

爲什麼你會在第一時間發送HTML作爲JSON? HTML擁有自己的數據結構,不需要在其上再使用另一個數據結構。 – 2011-02-02 09:54:51

+0

我發送了很多部分[sender_name,mobile_number,sent_time,message_body] – ahmedsafan86 2011-02-02 14:20:46

回答

3

在JavaScript對象符號(JSON)斜線逃脫反斜槓,所以<br\/>是有效的JSON,<br/>不是。

如果你想使用JSON工作的重視,你必須對其進行解碼:

result = JSON.parse(result); 
// or 
result = eval(result); // simple but maybe unsecure!