我尝试在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\"}]"}
为什么查询的行由反斜杠分隔? 怎么删除反斜杠? 非常感谢!
答案 0 :(得分:12)
\是要转义作为响应一部分的引号(“)。
使用stripslashes()
去除这些。
当用引号括起的字符串包含引号时,必须对它们进行转义。 php中的转义字符为\
。
答案 1 :(得分:11)
尝试
json_encode($arr, JSON_UNESCAPED_SLASHES);
或
echo str_replace('\/','/',json_encode($mydatas));
(如果unescape不起作用) http://php.net/manual/en/function.json-encode.php
答案 2 :(得分:5)
停止对数据进行双重编码。将所有内容放在一个大型结构中,然后仅编码 。
答案 3 :(得分: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"}]}
答案 4 :(得分:0)
如果有人想要删除反斜杠并且还要打印JSON数据,可以使用以下代码:
json_encode($my_array, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);