2017-08-24 57 views
0

對不起,我需要幫助我想轉換一個查詢,它會返回這個。將stdclass對象數組轉換爲json正確

{"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" 
    } 
    ] 
} 

我試圖同時,的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; 
+0

你可以顯示你的wile循環代碼,通過它你可以獲得原始的json數據嗎? –

+0

只選擇你想要的列,循環並將每行添加到一個數組,然後'json_encode'數組。 – AbraCadaver

+0

while($ get_users = $ set_users-> fetch_object()){ \t echo $ get_users; } –

回答

0

試試這個:

$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); 
0

您可以使用fetch_allMYSQLI_ASSOC選項,立刻得到所需格式的數據,即作爲一個關聯數組時json_encode轉換,這將使得JSON對象的符號:

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

請確保使用SQL查詢,該查詢僅選擇要在JSON中結束的字段。