Php 获取正确的json响应
我从数据库中获取数据,并以json的形式显示它 我是这样做的:Php 获取正确的json响应,php,json,Php,Json,我从数据库中获取数据,并以json的形式显示它 我是这样做的: while ($row = @mysqli_fetch_row($result)) { array_push($result1,$row); } echo $result1 = json_encode($result1,true); 以这种形式给出结果 [["29"],["13702210"],["892344"],["Multi AxleB9RVolvo"],["10:3
while ($row = @mysqli_fetch_row($result))
{
array_push($result1,$row);
}
echo $result1 = json_encode($result1,true);
以这种形式给出结果
[["29"],["13702210"],["892344"],["Multi AxleB9RVolvo"],["10:30AM"],["06:45PM"],["14"],["37"],["650"]]
这只打印从表中获取的数据库值。但此响应被标记为无效json响应
每个字段在表中都有名称。
我希望看到json响应的这种形式:
{"routes":[{"route":{"routeid":29,"Service_Name":13702210,"Service_Number":892344,"BusType":"Multi AxleB9RVolvo","DepartureTime":"10:30AM","ArravalTime":"06:45PM","available_seats":14,"Total_SeatCapacity":37,"Fare":"650"}},{"route":{"routeid":29,"Service_Name":13702210,"Service_Number":892344,"BusType":"Multi AxleB9RVolvo","DepartureTime":"10:30AM","ArravalTime":"06:45PM","available_seats":14,"Total_SeatCapacity":37,"Fare":"650"}},{"route":{"routeid":29,"Service_Name":13702210,"Service_Number":892344,"BusType":"Multi AxleB9RVolvo","DepartureTime":"10:30AM","ArravalTime":"06:45PM","available_seats":14,"Total_SeatCapacity":37,"Fare":"650"}}]}
它包含名称和嵌套预览。我怎样才能做到这一点?你需要使用关联数组,使用这个
while ($row = @mysqli_fetch_assoc($result))
{
array_push($result1,$row);
}
echo $result1 = json_encode($result1,true);
// for `routes` parent
// echo $result1 = json_encode(array("routes" => $result1));
我不知道你数据库的结构,但是:
while ($row = @mysqli_fetch_assoc($result))
{
array_push($result1,$row);
}
echo $result1 = json_encode(array('routes' => $result1));
可能会给你想要的结果mysql\u fetch\u assoc()
将表行作为关联数组返回,关联数组将提供键
然后array('routes'=>$result1)
创建一个新的关联数组,其中键“routes”与数组索引匹配
如果sql响应中的键不正确,您可以尝试在sql查询中使用选择字段名称作为别名\u名称
,以返回适当的字段名称
这里真正的技巧是为每个值设置具有适当键的关联数组,以便
json\u encode
创建对象而不是列表 很可能您将json\u encode
与json\u decode
混淆了json_encode
期望第二个参数为int
(位屏蔽选项)。@最后感谢您的警告,我还没有看到。重构您需要使用mysqli\u fetch\u assoc
来返回键值数组。看到我的答案了吗