Другие ответы работают, но хорошо знать, что сгенерированный JSON будет иметь следующую форму (в этом примере я использую гипотетическое поле «name» для ваших клиентов):
{
"5587d2c3cd8348455b26feab": {
"_id": {
"$id": "5587d2c3cd8348455b26feab"
},
"name": "Robert"
},
"5587d2c3cd8348455b26feac": {
"_id": {
"$id": "5587d2c3cd8348455b26feac"
},
"name": "John"
}
}
So в случае, если вы не хотите, чтобы Object _id
был ключом каждого из ваших объектов результата, вы можете добавить параметр false
в iterator_to_array
. Ваш код будет выглядеть следующим образом:
echo json_encode(iterator_to_array($customers, false), true);
Это создает тот же результат, что и
$result = Array();
foreach ($customers as $entry) {
array_push($result, $entry);
}
echo json_encode($result, true);
, который является массивом объектов JSON
[
{
"_id": {
"$id": "5587d2c3cd8348455b26feab"
},
"name": "Robert"
},
{
"_id": {
"$id": "5587d2c3cd8348455b26feac"
},
"name": "John"
}
]