【问题标题】:Manipulate JSON data using AngularJS使用 AngularJS 处理 JSON 数据
【发布时间】:2023-03-06 22:03:01
【问题描述】:

希望你好..

我有一个使用 php 制作的 API,可以从 SQL 中获取并将其转换为运行良好的 JSON。我唯一的问题是,我不能像我想要的那样操纵这个 php 来获取 JSON。我相信解决方案只是在我的 api.php 的 $outp 中放置一个位置。我在 SQL 中将 id 作为主要的我可以使用它作为索引来像我预期的那样显示 JSON 吗?

谢谢你,任何努力都会得到回报

这是输出的 JSON:

{
talents: [
{
id: "1",
tag: "001",
name: "Jasmina",
images: "assets/images/Jasmina3.jpg",
images02: "assets/images/Jasmina4.jpg",
images03: "assets/images/Jasmina7.jpg",
skills: "Usher",
skills02: "Modeling",
indexing: "usher"
},
{
id: "2",
tag: "002",
name: "Bruna",
images: "assets/images/BrunaD17.jpg",
images02: "assets/images/BrunaD18.jpg",
images03: "assets/images/BrunaD10.jpg",
skills: "Usher",
skills02: "Modeling",
indexing: "usher"
}
]
}

这是我预期的结果:

{
talents: [
1: {
tag: "001",
name: "Jasmina",
images: "assets/images/Jasmina3.jpg",
images02: "assets/images/Jasmina4.jpg",
images03: "assets/images/Jasmina7.jpg",
skills: "Usher",
skills02: "Modeling",
indexing: "usher"
},

2:{
tag: "002",
name: "Bruna",
images: "assets/images/BrunaD17.jpg",
images02: "assets/images/BrunaD18.jpg",
images03: "assets/images/BrunaD10.jpg",
skills: "Usher",
skills02: "Modeling",
indexing: "usher"
}
]
}

看看我的 API,请帮我玩弄那个 $outp。得到它。

<?php
//header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");

$conn = new mysqli("localhost", "root", "", "application");

$result = $conn->query("SELECT * FROM talents");

$outp = "";
while($rs = $result->fetch_array(MYSQLI_ASSOC)) {
    if ($outp != "") {$outp .= ",";}
    $outp .= '{"id":"'  . $rs["id"] . '",';
    $outp .= '"tag":"'  . $rs["tag"] . '",';
    $outp .= '"name":"'   . $rs["name"]        . '",';
    $outp .= '"images":"'. $rs["images"]     . '",';
    $outp .= '"images02":"'. $rs["images02"]     . '",';
    $outp .= '"images03":"'. $rs["images03"]     . '",';
    $outp .= '"skills":"'. $rs["skills"]     . '",';
    $outp .= '"skills02":"'. $rs["skills02"]     . '",';
    $outp .= '"indexing":"'. $rs["indexing"] . '"}';
}
$outp ='{"talents":['.$outp.']}';
$conn->close();

echo($outp);
?>

【问题讨论】:

    标签: php mysql angularjs json api


    【解决方案1】:

    不要尝试自己构建 json,而是使用本机 json_encode。它解决了 JSON 存在的所有边缘情况。

    您需要准备的只是一个关联数组,您可以逐个字段指定(就像我在示例中所做的那样,建议您这样做,因为这样您可以指定要发送给用户的确切字段,它可以防止敏感数据暴露)或只是$outp[$rs["id"]] = $rs;

    <?php
    header("Content-Type: application/json; charset=UTF-8");
    
    $conn = new mysqli("localhost", "root", "", "application");
    
    $result = $conn->query("SELECT * FROM talents");
    
    $outp = array();
    while ($rs = $result->fetch_array(MYSQLI_ASSOC)) {
        $outp[$rs["id"]] = array(
            "tag" => $rs["tag"],
            "name" => $rs["name"],
            "images" => $rs["images"],
            "images02" => $rs["images02"],
            "images03" => $rs["images02"],
            "skills" => $rs["skills"],
            "skills02" => $rs["skills02"],
            "indexing" => $rs["indexing"]
        );
    }
    $outp["talents"] = array($outp);
    $conn->close();
    
    echo (json_encode($outp));
    ?>
    

    【讨论】:

    • 像魅力一样工作。谢谢老哥
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-16
    • 2017-03-14
    • 1970-01-01
    相关资源
    最近更新 更多