Estoy tratando de usar PHP para generar JSON para tomar específicamente la forma deseada. A continuación se muestra un fragmento de mi código PHP:
if($con){ $sql="select * from people"; $result=mysqli_query($con,$sql); if($result){ header("Content-Type: JSON"); $i=0; while($row = mysqli_fetch_assoc($result)){ $response[$i]['gender']=$row['gender']; $response[$i]['first']=$row['first']; $i++; } echo json_encode($response, JSON_PRETTY_PRINT); } }Aquí está mi respuesta JSON actual
[ { "gender":"male", "first":"Angela" }, { "gender":"female", "first":"Krista" } ]Y aquí está mi respuesta deseada:
{ "inputs": [ { "values": { "gender": "male", "first": "Angela" } }, { "values": { "gender": "female", "first": "Krista" } } ] }Casi, agregue 'valores', luego sus elementos luego agreguen $response a la matriz de elementos, también el tipo de contenido para json es aplicación/json, y debe predefinir $ respuesta como una matriz, de lo contrario, obtendrá una advertencia indefinida y un valor nulo al usar en json_encode si la consulta está vacía.
... header("Content-Type: application/json"); $response = []; while($row = mysqli_fetch_assoc($result)){ $response[]['values'] = [ 'gender' => $row['gender'], 'first' => $row['first'] ]; } echo json_encode(['inputs' => $response], JSON_PRETTY_PRINT); ...De esta manera:
if ($con) { $sql = "select * from people"; $result = mysqli_query($con,$sql); if ($result) { header("Content-Type: JSON"); $response = [ "inputs" => [] ]; while ($row = mysqli_fetch_assoc($result)){ $response["inputs"][] = [ "values" => [ 'gender' => $row['gender'], 'first' => $row['first'] ] ]; } echo json_encode($response, JSON_PRETTY_PRINT); } }