我一直从我的web服务接收json,在引号内,如下所示:
"[{"id":"1","nombre":"Cecilia","correo":"csoto@ts.edu.mx","telefono":"5529964"},{"id":"2","nombre":"Romero","correo":"","telefono":"5435432"},{"id":"3","nombre":"nick","correo":"carlos@mail.com","telefono":"12345"}]"
注意括号前的“”我不知道为什么。
我正在使用jacwright的restserver(https://github.com/jacwright/RestServer)来实现以下功能:
public function getUsers()
{
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "estudiantes";
// Create connection
$array = array();
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT id, nombre, correo, telefono FROM estudiante";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
$res = array("id" => $row["id"], "nombre" => $row["nombre"], "telefono" => $row["telefono"], "correo" => $row["correo"]);
array_push($array, $res);
//echo "id: " . $row["id"]. " - Name: " . $row["nombre"]. " " . $row["correo"]. "<br>";
}
}
$conn->close();
return json_encode($array) ;
}
有人能理解为什么它总是加上引号吗?
最佳答案
只是一个模拟您的情况的快速示例,使用ECHO返回JSON编码的数组:
JS公司:
$.get('json.php', function(data) {
console.log(data);
if (data) {
//Check the console, everything is working like charm
newData = $.parseJSON(data);
console.log(data);
console.log('--------------' + 'Elements count:' + newData.length);
console.log('--------------' + newData);
}
});
json.php文件:
<?php
$myArr = array(
array("id"=>"1","nombre"=>"Cecilia","correo"=>"csoto@ts.edu.mx","telefono"=>"5529964"),
array("id"=>"2","nombre"=>"Romero","correo"=>"","telefono"=>"5435432"),
array("id"=>"3","nombre"=>"nick","correo"=>"carlos@mail.com","telefono"=>"12345")
);
$jsonData = json_encode($myArr);
echo $jsonData;
?>
在JSON.PHP中,使用了
return $jsonData;
而不是echo $jsonData;
的上述代码,它在控制台中给出了以下内容:对于
data
控制台错误:
referenceerror:未定义newdata