【问题标题】:How to output proper JSON array of objects from php for axios call如何从 php 输出正确的 JSON 对象数组以进行 axios 调用
【发布时间】:2019-10-02 16:30:00
【问题描述】:

我正在对不是我构建的 api 进行 api 调用,响应是一个对象数组,但它实际上是一个字符串,所以我不能用它做任何事情

我尝试修改 php 文件,但我从未对它做过任何事情,所以我不知道

try {

    $stmt = $conn->prepare($sql);
    $stmt->execute(array('partnumber'));
    $stmt->execute();
    $array = $stmt->fetchALL();
    sort($array);

//make Json file
    echo '[';
    foreach ($array as $key => $row) {
        $last = ($key !== count($array) - 1) ? "} , " : " }]";
        echo '{partnumber: "' . $row['partnumber'] . '", ';
        echo 'image: "/media/pic/' . $row['partnumber'] . '.jpg", ';
        echo 'retailPrice: "' . $row['retail'] . '", ';
        echo 'use: "' . $row['use'] . '"';
        echo $last;
    }
} catch (Exception $e) {
    echo $e->getMessage();
}


期望:

 [{
    partnumber: "12355",
    image: "/media/pic/111112W BN.jpg",
    retailPrice: "20.00",
    use: "living"
    },
    {
    partnumber: "125556665",
    image: "/media/pic/111112W WBZ.jpg",
    retailPrice: "20.00",
    use: "laundry, living"
    },
    {
    partnumber: "12355666666",
    image: "/media/pic/111122 BK.jpg",
    retailPrice: "0.00",
    use: "bedroom, closet, entry"
    },
    {
    partnumber: "1233333333",
    image: "/media/pic/111122 BN.jpg",
    retailPrice: "0.00",
    use: "bedroom, closet, entry, hall, laundry, living"
    }]

结果:

"[{partnumber: "10A19M60WCL", image: "/media/pic/10A19M60WCL.jpg", retailPrice: "0.00", use: "&"} , {partnumber: "10L27A19M8W", image: "/media/pic/10L27A19M8W.jpg", retailPrice: "0.00", use: "&"} , {partnumber: "10L27A19M8WD", image: "/media/pic/10L27A19M8WD.jpg", retailPrice: "0.00", use: "&"} , {partnumber: "10L27B11C5W", image: "/media/pic/10L27B11C5W.jpg", retailPrice: "0.00", use: "&"} , {partnumber: "10L27ST19M6W", image: "/media/pic/10L27ST19M6W.jpg", retailPrice: "0.00", use: "&"} , {partnumber: "10L30GU104W", image: "/media/pic/10L30GU104W.jpg", retailPrice: "0.00", use: "&"} , {partnumber: "111112W BN", image: "/media/pic/111112W BN.jpg", retailPrice: "20.00", use: "bedroom, closet, entry, hall, laundry, living"} , {partnumber: "111112W WBZ", image: "/media/pic/111112W WBZ.jpg", retailPrice: "20.00", use: "bedroom, closet, entry, hall, laundry, living"}]"

【问题讨论】:

  • 对于 JSON - 您的字段名称也需要用引号括起来 [{"partnumber": "10A19M60WCL"。您还应该使用json_encode() 来构建 JSON,因为手动构建可能会引入编码问题。
  • 是的,我将这个数组带入一个反应应用程序的状态,json 方法是前端吗?
  • @nigelRen 好的,完成了,但数组仍然用引号引起来:(
  • 我没有写这个 php 文件,我从未接触过 php,但我可以访问该文件,所以对我来说它看起来像中文@NigelRen 我没有连接点

标签: php arrays reactjs object


【解决方案1】:

原来数据库中有换行符导致 JSON 无效 通过删除换行符修复

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-18
    • 1970-01-01
    • 2013-05-12
    • 1970-01-01
    • 1970-01-01
    • 2020-10-21
    • 1970-01-01
    相关资源
    最近更新 更多