簡體   English   中英

帶有一些html標記的JSON字符串在解析時失敗

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM