altre risposte funzionano, ma è bene sapere che il JSON generato avrà il seguente modulo (in questo esempio io uso un "nome" ipotetico campo per i vostri clienti):
{
"5587d2c3cd8348455b26feab": {
"_id": {
"$id": "5587d2c3cd8348455b26feab"
},
"name": "Robert"
},
"5587d2c3cd8348455b26feac": {
"_id": {
"$id": "5587d2c3cd8348455b26feac"
},
"name": "John"
}
}
Pertanto, se non si desidera che l'oggetto _id
sia la chiave di ciascun oggetto risultato, è possibile aggiungere un parametro false
a iterator_to_array
. Il tuo codice sarebbe:
echo json_encode(iterator_to_array($customers, false), true);
Questo crea lo stesso risultato
$result = Array();
foreach ($customers as $entry) {
array_push($result, $entry);
}
echo json_encode($result, true);
, che è un array di JSON oggetti
[
{
"_id": {
"$id": "5587d2c3cd8348455b26feab"
},
"name": "Robert"
},
{
"_id": {
"$id": "5587d2c3cd8348455b26feac"
},
"name": "John"
}
]
'foreach ($ clienti da $ k => $ riga) {$ newa [] = json_encode ($ row); } 'potrebbe essere necessario convertire prima i tipi di oggetto in stringa pura, anche se come il' MongoId' – Sammaye