繁体   English   中英

获取正确的json响应

[英]getting correct json response

我从数据库中获取数据并以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"}}]}

其中包含名称和嵌套预览。 我怎样才能做到这一点?

我不知道您的数据库的结构,但是:

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创建对象而不是列表。

您需要使用关联数组,使用此数组;

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));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM