2016-11-18 2 views
0

Мне нужен JSON, чтобы он появился в следующем формате. Объект "пользователи"Отображение mySQL-запроса как объекта JSON

{ 
    "users": [{ 
     "ver": "1.5", 
     "name": "Cupcake", 
     "api": "API level 3" 
    }, { 
     "ver": "7.0", 
     "name": "Nougat", 
     "api": "API level 24" 
    }] 
} 

, когда я использую этот PHP

<?php 
$link = mysqli_connect("localhost", "***", "***", "***"); 
if (mysqli_connect_error()) { 
     die("Could not connect to database"); 
} 

$query = "SELECT * FROM users"; 
if ($result=mysqli_query($link, $query)) { 

{ 
    while($row =mysqli_fetch_assoc($result)) 

    $emparray[] = $row; 

    echo json_encode($emparray); 
} 

} else { 
echo "It failed"; 
} 
?> 

я вернусь этот JSON

[{ 
    "ver": "1.5", 
     "name": "Cupcake", 
     "api": "API level 3" 
}, { 
    "ver": "7.0", 
     "name": "Nougat", 
     "api": "API level 24" 
} 
}] 

Когда я использую этот PHP

<?php 

$link = mysqli_connect("localhost", "***", "***", "***"); 
if (mysqli_connect_error()) { 
    die("Could not connect to database"); 
} 

$query = "SELECT * FROM users"; 
if ($result=mysqli_query($link, $query)) { 

{ 
    while($row =mysqli_fetch_assoc($result)) 
    $emparray[] = $row; 

    echo json_encode(array('users' => $emparray),JSON_FORCE_OBJECT); 
    } 

} else { 
echo "It failed"; 
} 
?> 

я получаю это

{ 
    "users": { 
     "0": { 
      "ver": "1.5", 
     "name": "Cupcake", 
     "api": "API level 3" 
     }, 
     "1": { 
      "ver": "7.0", 
     "name": "Nougat", 
     "api": "API level 24" 
     } 
    } 
} 

Последнее почти то, что мне нужно, но отображается { «0»: вместо требуемого [и]

Может кто-нибудь помочь это исправить?

+1

'json_encode (array ('users' => $ emparray));'? –

+0

Работает отлично сейчас @JonStirling. –

+0

Возьмите 'echo json_encode()' из цикла. Вы должны просто сделать это один раз после того, как вы заполнили весь массив. – Barmar

ответ

0

попробовать с

if ($result = mysqli_query($link, $query)) 
{ 
    while ($row = mysqli_fetch_assoc($result)) 
    { 
    $emparray[] = $row; 
    } 

    echo json_encode(array('users' => $emparray)); 
} 
else 
{ 
    echo "It failed"; 
} 

Удалить JSON_FORCE_OBJECT константу.

Смежные вопросы