/ / "Impossibile utilizzare" in "operatore .." durante il recupero della risposta stringa JSON in AJAX jQuery - php, jquery, json, ajax, laravel

"Impossibile utilizzare 'in' operator .." durante il recupero della risposta stringa JSON in AJAX jQuery - php, jquery, json, ajax, laravel

Sto cercando di creare un array JSON in laravel epoi cercando di recuperarlo tramite jquery ajax. Crea JSON ma mentre lo recupera da jQuery crea problemi. Non sono in grado di recuperare la coppia chiave-valore lì.

Ecco il codice per creare array JSON in Laravel (PHP):

foreach ($userIds as &$userId) {
$data[] = json_encode(array("Id"=>$id,"Name"=>$name,"HashId"=>$hashId));
}
return $data;

PS. $data mostra questo tipo di risposta:

[
"{"Id":"111","Name":"abc","HashId":"I1J6EDO"}",
"{"Id":"112","Name":"xyz","HashId":"MDLYW9K"}"
]

questo è come sto cercando di chiamare ajax req:

$.ajax({
type: "GET",
url: "/url/goes/here",
dataType: "json",
success: function(data) {
$.each(data, function(key, value){
$.each(value, function(key1, value1){
console.log(value1);
});
});
}
});

la console mostra l'errore: Uncaught TypeError: Cannot use "in" operator to search for..

dopo qualche ricerca, ho capito che forse la risposta è una stringa di array JSON e non un array JSON o obj (come previsto)

Ho bisogno di aiuto per recuperare la coppia chiave-valore. Sono anche aperto per cambiare il modo in cui codifico JSON in laravel. Gentilmente aiuto come sono nuovo a entrambi JSON e AJAX

risposte:

2 per risposta № 1

Dovresti codificare tutto dopo che gli array sono stati creati

$data = array();

foreach ($userIds as $userId) {
$data[] = array("Id"=>$id,"Name"=>$name,"HashId"=>$hashId);
}
return json_encode($data);