[英]JSON string with some html tag failing at parse
我正在接受用戶輸入使用jQuery ajax將其發送到服務器...在數據庫中插入用戶值后我將響應作為JSON字符串發送回客戶端如下
echo'{“success”:“true”,“data”:“'。nl2br($ a)。'”,“type”:“text”}';
由於用戶輸入可以包含新行,我使用nl2br以便將所有新行字符轉換為<br>並且還知道JSON不支持多行,這就是為什么我使用nl2br ....但解析在客戶端失敗側
請告訴我原因是什么,我該如何解決?
解析代碼var obj = jQuery.parseJSON(data);
echo json_encode(array("success"=>"true","data"=>$a,"type"=>"text")
使用php函數json_encode而不是嘗試自己設置編碼。 你會以這種方式為自己省去很多麻煩。 http://php.net/manual/en/function.json-encode.php
nl2br()不替換換行符,只在它們之前插入<br>
。
因此,返回\\n
,因此創建無效的JSON。
在創建JSON字符串時應該使用json_encode()
。 為簡單起見,您可以簡單地在data
上使用它:
echo '{"success":"true","data":' . json_encode(nl2br($a)) . ',"type":"text"}';
您應該使用json_encode,它將生成一個包含\\r\\n
的JSON字符串,用於換行符。 然后你必須用<br>
標簽替換每個\\r\\n
。
echo str_replace('\r\n','<br>', json_encode(array("success"=>"true","data"=>$a,"type"=>"text")));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.