我从数据库获取数据并以json
的形式显示我是这样做的:
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"}}]}
这包含名称和嵌套预览。我怎么能这样做?
答案 0 :(得分:1)
我不知道你的数据库的结构,但是:
while ($row = @mysqli_fetch_assoc($result))
{
array_push($result1,$row);
}
echo $result1 = json_encode(array('routes' => $result1));
可以给你想要的结果。 mysql_fetch_assoc()
将表行作为将提供键的关联数组返回。
然后array('routes' => $result1)
创建一个新的关联数组,其键“routes”与数组索引匹配。
如果他们的sql响应中的键不正确,您可以尝试在SQL查询中使用select field_name as alias_name
来返回相应的字段名称。
这里真正的技巧是为每个值设置具有适当键的关联数组,以便json_encode
创建对象而不是列表。
答案 1 :(得分:0)
你需要使用关联数组,使用它;
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));