为了账号安全,请及时绑定邮箱和手机立即绑定

如何在PHP中制作不同结构的JSON

如何在PHP中制作不同结构的JSON

PHP
智慧大石 2023-03-04 14:56:45
我正在从 2 个表中检索数据:1) 主页横幅和 2) 热门交易。之后,我从中制作 REST API。但是我在 json 中获取数据是这样的: [    {        "homuri": "/Home/Banner/activity.png"    },    {        "homuri": "/Home/Banner/fitness.png"    },       {        "hotdeal": "/Home/HotDeals/hotdeal1.png"    },    {        "hotdeal": "/Home/HotDeals/hotdeal2.png"    },    {        "hotdeal": "/Home/HotDeals/hotdeal3.png"    },]但我想要我的 json 结构是这样的:[        "banner":{            "homuri": "/Home/Banner/activity.png",            "homuri": "/Home/Banner/fitness.png"        },           "hotdeals":{            "hotdeal": "/Home/HotDeals/hotdeal1.png",            "hotdeal": "/Home/HotDeals/hotdeal2.png",            "hotdeal": "/Home/HotDeals/hotdeal3.png",        },    ]如何做到这一点?以及如何在 HTML 中访问所有这些值?下面我附上我的代码:<?php    include('dbconn.php');    $request=$_SERVER['REQUEST_METHOD'];    $data=array();    switch($request)    {        case 'GET':            response(getData());                            }    function getData()    {        global $conn;        @$col=$_GET['col'];        $query=mysqli_query($conn,"select strHomeBannerUri as homuri from tblhomebannerdetails");        while($row=mysqli_fetch_assoc($query))        {            $data[]=array("homuri"=>$row['homuri']);                    }        if($col=="pop")        {            $query=mysqli_query($conn,"select nHotrDealImageUri as hotdeal from tblhotdealimages");        while($row=mysqli_fetch_assoc($query))        {            $data[]=array("hotdeal"=>$row['hotdeal']);                  }        }                   return $data;               }    function response($data)    {        echo json_encode($data);    }?>
查看完整描述

1 回答

?
繁星coding

TA贡献1797条经验 获得超4个赞

您希望 JSON 看起来的方式将不起作用 - 您不能在同一“嵌套级别”中多次使用一个键。


function getData()

{

    global $conn;

    @$col=$_GET['col'];


    $query=mysqli_query($conn,"select strHomeBannerUri as homuri from tblhomebannerdetails");


    while($row=mysqli_fetch_assoc($query))

    {

        $data['homeuri'][]= $row['homuri'];            

    }


    if($col=="pop")

    {

        $query=mysqli_query($conn,"select nHotrDealImageUri as hotdeal from tblhotdealimages");


    while($row=mysqli_fetch_assoc($query))

    {

        $data['hotdeals'][]= $row['hotdeal'];          

    }


    }           

    return $data;           

}

可以解决这个问题 - 你的逻辑有一些问题,你应该检查自己如何在 PHP 中编写和修改数组。完成后,请检查 JSON 以及如何构建 JSON 对象/列表。


上面的代码应该返回类似


{

    "banner":[

        "/Home/Banner/activity.png",

        "/Home/Banner/fitness.png"

    ],   

    "hotdeals":[

        "/Home/HotDeals/hotdeal1.png",

        "/Home/HotDeals/hotdeal2.png",

        "/Home/HotDeals/hotdeal3.png"

    ],    

}


查看完整回答
反对 回复 2023-03-04
  • 1 回答
  • 0 关注
  • 160 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号