7

mysql クエリの行を JSON Whit php に追加しようとしています。私はこのコードを使用します:

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\"}]"}

クエリの行がバックスラッシュで区切られているのはなぜですか? バックスラッシュを削除する方法 どうもありがとう!

4

5 に答える 5

16

\ は、応答の一部である引用符 (") をエスケープするためのものです。

stripslashes()これらを剥がすために使用します。

引用符で囲まれた文字列に引用符が含まれている場合は、エスケープする必要があります。php のエスケープ文字は\.

于 2013-01-08T06:00:52.890 に答える
13

試す

json_encode($arr, JSON_UNESCAPED_SLASHES);

また

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

(unescape が機能しない場合) http://php.net/manual/en/function.json-encode.php

于 2013-01-08T06:02:22.143 に答える
6

データの二重エンコードを停止します。すべてを 1 つの大きな構造にまとめて、それのみをエンコードします。

于 2013-01-08T06:01:29.227 に答える
0

ありがとう、私はそれを解決します。

$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"}]}
于 2013-01-08T19:13:10.130 に答える