簡體   English   中英

如何使用PHP刪除json響應中的反斜杠(“\\”)?

[英]how remove the backslash (“\”) in the json response using php?

我嘗試在JSON whit php中添加一行mysql查詢。 我用這個代碼:

public function lugaresCercanos($lng, $lat, $distance){
$result=mysql_query("SELECT nombre, distancia FROM Lugar ORDER BY distancia ASC");
$info=array();
    while($row = mysql_fetch_array($result,MYSQL_ASSOC)){
        array_push($info,$row);
    }
    return json_encode($info);

這會返回一個JSONObject,但我不確定。

    class resultado_final {
public $logstatus = "";
public $lugares_cercanos = "";}

$result_final = new resultado_final();
if($db->login($usuario,$passw)){
$result_final->logstatus = "0";}else{
$result_final->logstatus = "1";}
$result_final->lugares_cercanos = $lista;
echo json_encode($result_final);

這段代碼打印出來:

{"logstatus":"1","lugares_cercanos":"[{\"nombre\":\"Rio Amazonas\",\"distancia\":\"5119.000\"},{\"nombre\":\"Swissotel \",\"distancia\":\"5823.000\"},{\"nombre\":\"Laguna de Yaguarcocha\",\"distancia\":\"71797.000\"}]"}

為什么查詢的行由反斜杠分隔? 怎么刪除反斜杠? 非常感謝!

\\是要轉義作為響應一部分的引號(“)。

使用stripslashes()將它們剝離出來。

當用引號括起的字符串包含引號時,必須對它們進行轉義。 php中的轉義字符是\\

嘗試

json_encode($arr, JSON_UNESCAPED_SLASHES);

要么

echo str_replace('\/','/',json_encode($mydatas));

(如果unescape不起作用) http://php.net/manual/en/function.json-encode.php

停止對數據進行雙重編碼。 將所有內容放在一個大型結構中,然后僅對其進行編碼。

謝謝,我解決了。

$info=array();
    while($row = mysql_fetch_array($result,MYSQL_ASSOC)){
        array_push($info,$row);
    }
    $info;
$result_final->lugares_cercanos = $info;

打印此:

{"logstatus":"1","lugares_cercanos":[{"nombre":"Rio Amazonas","distancia":"5119.000"}{"nombre":"Swissotel Quito","distancia":"5823.000"}{"nombre":"Laguna de Yaguarcocha","distancia":"71797.000"}]}

如果有人想要刪除反斜杠並且還要打印JSON數據,可以使用以下代碼:

json_encode($my_array, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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