【问题标题】:convert stdclass object array to json correct将 stdclass 对象数组正确转换为 json
【发布时间】:2017-08-24 20:56:39
【问题描述】:

对不起我的英语,我需要帮助我想转换一个返回这个的查询。

{"ids":"1","user":"aki","last":"terris","job":"programmer"}{"ids":"1","user":"ako","last":"acros","job":"Artist"}

改成

{
  "users": [
    {
      "user": "aki",
      "last": "terris",
      "job": "programmer"
    },
    {
      "user": "ako",
      "last": "acros",
      "job": "Artist"
    }
  ]
}

我尝试了 while、foreach 但没有一个给我一个有效的格式,一些帮助

咨询:

$sql = $db->query("SELECT * FROM user_s WHERE ids = '1' ");    
$set_users = $sql;

例如:

$entity = array();    
while ($get_users = $set_users->fetch_object()) {

    $entity = array(
        'id' => $get_users->id,
        'user' => $get_users->user
        );

}

$fsi = array(
    'users' => $entity, 
    );

echo $fsi;

【问题讨论】:

  • 你能展示你通过它获得原始 json 数据的诡计循环代码吗?
  • 只选择你想要的列,循环并将每一行添加到数组中,然后json_encode数组。
  • while ($get_users = $set_users->fetch_object()) { echo $get_users; }
  • 我正在尝试使用 fetch_object
  • 您不需要对象,因为json_encode 会将这些数组转换为对象。

标签: php arrays json mysqli


【解决方案1】:

试试这个:

$results = new \stdClass;
$results->users = [];

while ($get_users = $set_users->fetch_object()) {

    $entity = array(
        'user' => $get_users->user,
        'last' => $get_users->last,
        'job'  =>  $get_users->job,
    );
    $results->users[] = $entity;
}

echo json_encode($results);

【讨论】:

    【解决方案2】:

    您可以使用fetch_allMYSQLI_ASSOC 选项,以所需格式立即获取数据,即作为关联数组,当使用json_encode 转换时将呈现JSON 对象表示法:

    $fsi = [ 'users' => $set_users->fetch_all(MYSQLI_ASSOC) ];    
    echo json_encode($fsi);
    

    确保使用仅选择您希望在 JSON 中结束的字段的 SQL 查询。

    【讨论】:

      猜你喜欢
      • 2011-11-08
      • 2023-04-04
      • 1970-01-01
      • 2018-08-09
      • 2013-10-29
      • 1970-01-01
      • 2016-03-29
      • 2016-10-01
      • 1970-01-01
      相关资源
      最近更新 更多