我的JSON响应中似乎有多余的键。知道为什么吗?
以下是JSON响应的摘录:
{
"0": "1",
"id": "1",
"1": "XX University",
"name": "XX University",
"2": "http:\/\/ree.com\/images\/xxUniversity.png",
"backgroundImageUrl": "http:\/\/ree.com\/images\/XXUniversityLogo.png",
"3": "http:\/\/ree.com\/images\/xxUniversity.png",
"logoImageUrl": "http:\/\/ree.com\/images\/XXUniversityLogo.png"
},下面是我的PHP代码:
$query = "SELECT * from $entity"; //Bad security,for a different question
$results = mysqli_query($con,$query);
//Parse to JSON
$json=array();
while($row=mysqli_fetch_array($results)){
$json[]=$row;
}
//Close connection
mysqli_close($con);
//Encode and send response as JSON (using the entity type as a parameter)
//echo json_encode(array($entity => $json), JSON_FORCE_OBJECT);
echo json_encode(array ($entity =>$json)); 发布于 2013-04-10 00:19:44
你的问题是mysqli_fetch_array。您希望将MYSQLI_ASSOC作为第二个参数传递。
while($row=mysqli_fetch_array($results,MYSQLI_ASSOC)){
$json[]=$row;
}此可选参数是一个常量,指示应从当前行数据生成哪种类型的数组。此参数的可能值为常量MYSQLI_ASSOC、MYSQLI_NUM或MYSQLI_BOTH。
通过使用MYSQLI_ASSOC常量,此函数的行为将与mysqli_fetch_assoc()相同,而MYSQLI_NUM的行为将与mysqli_fetch_row()函数相同。最后一个选项是MYSQLI_BOTH,它将创建一个具有这两个属性的数组。
发布于 2013-04-10 00:20:08
默认情况下,mysqli_fetch_array同时检索数字索引和命名索引。
您必须指定一个附加参数才能仅获取所需的参数。
https://stackoverflow.com/questions/15907213
复制相似问题