【问题标题】:How to create JSON root object with php如何使用 php 创建 JSON 根对象
【发布时间】:2021-04-13 16:30:31
【问题描述】:

我的 PHP 脚本的当前输出如下所示:

[
   {
      "id": "1087",
      "name": "Abhishek Saini",
      "email": "info@gmail.com",
      "gender": "male"
   },
   {
      "id": "1088",
      "name": "Gourav",
      "email": "test@gmail.com",
      "gender": "male"
   }
]

但我希望它有一个“用户:”根对象(或其他任何名称):

{
   "users": [
      {
         "id": "1087",
         "name": "Abhishek Saini",
         "email": "info@gmail.com",
         "gender": "male"
      },
      {
         "id": "1088",
         "name": "Gourav",
         "email": "test@gmail.com",
         "gender": "male"
      }
   ]
}

我真的不知道如何实现这一点,因为我在互联网上看到的很多东西看起来与我的 php 脚本有很大不同。

我认为这只是一个小改动,我不想重写我的整个脚本。

这就是我的 php 脚本的样子:

<?php


    ...

    $conn = new mysqli($servername, $username, $password, $dbName);

    if(!$conn){
        die("Connection Failed. ". mysqli_connect_error());

    }else{
        echo "Connection Succeeded";
    }

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


     if ($result->num_rows > 0) {

         $result = $conn->query($sql);
         $result_code .= "found lines - ";
         while($row = $result->fetch_assoc()) {
                                 $json[$row["id"]]                     = $row["id"];
                                 $json[$row["name"]]                     = $row["name"];
                                 $json[$row["email"]]                     = $row["email"];
                                 $json[$row["gender"]]                     = $row["gender"]; 
         }
     } else {
     $result_code .= "no rows in db! - ";
     }
echo json_encode($json);
?>

我必须添加哪一行才能获得“用户”根目录?

【问题讨论】:

  • 你有答案或在你的作业中做$json["users"][$row["id"]] =

标签: php mysql arrays json


【解决方案1】:

只需将现有数据包装在关联数组中:

$json = array('users' => $json);
echo json_encode($json);

输出:

{
    "users": [
        {
            "id": "1087",
            "name": "Abhishek Saini",
            "email": "info@gmail.com",
            "gender": "male"
        },
        {
            "id": "1088",
            "name": "Gourav",
            "email": "test@gmail.com",
            "gender": "male"
        }
    ]
}

Demo on 3v4l.org

【讨论】:

    【解决方案2】:

    您必须将结果分配给users 键。 在echo json_encode($json) 之前,添加$json = ['users' =&gt; $json]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-21
      • 1970-01-01
      • 1970-01-01
      • 2017-10-14
      • 2022-12-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多