【问题标题】:Php database format json for GoJsGoJs 的 PHP 数据库格式 json
【发布时间】:2017-03-09 02:59:02
【问题描述】:

我想以这种格式为js 库格式化json! GoJ 期望采用这种格式的 json:

model.nodeDataArray =
                [
                    { key: "1",              username: "Don Meow",   source: "cat1.png" },
                    { key: "2", parent: "1", username: "Demeter",    source: "cat2.png" },
                    { key: "3", parent: "1", username: "Copricat",   source: "cat3.png" },
                    { key: "4", parent: "3", username: "Jellylorum", source: "cat4.png" },
                    { key: "5", parent: "3", username: "Alonzo",     source: "cat5.png" },
                    { key: "6", parent: "2", username: "Munkustrap", source: "cat6.png" }
                ];

在 php 中,我尝试像上面一样返回 json,但我对 json 很陌生,我的示例不起作用!

$users = $db->query("SELECT * FROM user");
$data = array();

while ($result = $users->fetch_assoc())
{
    $data['key'] = $result['id'];
    $data['username'] = $result['username'];
    $data['email'] = $result['email'];
    $data['parent'] = $result['parent'];

    array_push($data, $result);
}

echo json_encode($data);

我的 JSON 看起来像这样:

{"key":"7","username":"Vlada","parent":"4","0":{"id":"1","parent":null,"username" :"Ivan","email":"office.asd@gmail.com","password":"qwe123"},"1":{"id":"2","parent":"1","用户名":"Martinu","email":"asd@gmail.com","password":"qwe123"},"2":{"id":"3","parent":"1","用户名":"Biljana","email":"asd.com","password":"qwe123"},"3":{"id":"4","parent":"2","username" :"Emil","email":"test@test.com","password":null},"4":{"id":"5","parent":"2","username":" Elena","email":"test@test.com","password":null},"5":{"id":"6","parent":"4","username":"Bole" ,"email":null,"password":null},"6":{"id":"7","parent":"4","username":"Vlada","email":null,"密码":null}}

我尝试用key 替换id,因为GoJ 需要定义key 属性。我的 json 是如此不同,我需要像上面的 json 那样格式化输出?

我在这里做错了什么?

【问题讨论】:

    标签: php mysql json gojs


    【解决方案1】:

    你只需要改变你在数组中的存储方式

    $users = $db->query("SELECT * FROM user");
    $data = array();
    
    while ($result = $users->fetch_assoc())
    {
    $row = array (
        "key" => $result['id'],
        "username" => $result['username'],
        "email" => $result['email'],
        "parent" => $result['parent'],
    );
    
    array_push($data, $row);
    }
    
    echo json_encode($data);
    

    【讨论】:

      【解决方案2】:

      你在这里做了一些奇怪的事情

      尝试将其简化为

      $users = $db->query("SELECT * FROM user");
      $data = array();
      while ($row = $users->fetch_assoc())
      {
          $t = array();
          $t['key']       = $row ['id'];
          $t['username']  = $row ['username'];
          $t['email']     = $row ['email'];
          $t['parent']    = $row ['parent'];
      
          $data[] = $t;
      }
      

      或者更简单,在查询中指定你想要的列,这样会更快,然后你就可以构建好数组了

      $users = $db->query("SELECT id,username,email,parent FROM user");
      $data = array();
      while ($row = $users->fetch_assoc())
      {
          $data[] = $row;
      }
      

      【讨论】:

      • 每个人都会得到一个 cookie。
      • 好吃。我可以喝杯茶吗
      • 只要你不介意它到达那里时很冷,当然可以。如果不是“冰镇”!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-21
      • 2014-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多