如何将json过滤为特定格式(删除某些部分)

我正在将 MySQL 转换为 json 并且输出提供的比我想要的要多,所以我想将它过滤为每个段的几个值。


我试过寻找类似的问题,但还没有找到我真正理解得足以适应这个特定用例的问题。


这是我正在做的生成 json


$rows = array();

  while($r = mysqli_fetch_array($result)) {

    $rows[] = $r;

  }


  $json_string = json_encode($rows, JSON_PRETTY_PRINT);

这是输出的示例


[

    {

        "0": "1",

        "id": "1",

        "1": "2019-05-25 14:38:10",

        "timestamp": "2019-05-25 14:38:10",

        "2": "4",

        "category": "4"

    },

    {

        "0": "2",

        "id": "2",

        "1": "2019-05-25 14:38:15",

        "timestamp": "2019-05-25 14:38:15",

        "2": "3",

        "category": "3"

    }

]

我想要的是更像这样的东西


[

  {

    "category": "4",

    "timestamp": "2019-05-25 14:38:10"

  },


  {

    "category": "3",

    "timestamp": "2019-05-25 14:38:15"

  }

]


天涯尽头无女友
浏览 184回答 2
2回答

慕侠2389804

您可以尝试在输出中仅获取这两列。或者,您可以使用MYSQLI_ASSOC常量来获取结果行作为关联数组。<?php$rows = array();while($r = mysqli_fetch_array($result, MYSQLI_ASSOC)) {&nbsp; &nbsp; $rows[] = array(&nbsp; &nbsp; &nbsp; &nbsp; "category" => $r["category"],&nbsp; &nbsp; &nbsp; &nbsp; "timestamp" => $r["timestamp"]&nbsp; &nbsp; );}$json_string = json_encode($rows, JSON_PRETTY_PRINT);?>

慕莱坞森

将您的 SQL 查询从SELECT&nbsp;*&nbsp;...(或者你的 SELECT 子句看起来像什么)SELECT&nbsp;category,&nbsp;timestamp&nbsp;...那么您的 PHP 代码可能是单行代码:$json_string&nbsp;=&nbsp;json_encode($result->fetch_all(MYSQLI_ASSOC),&nbsp;JSON_PRETTY_PRINT);
打开App,查看更多内容
随时随地看视频慕课网APP