Maison  >  Questions et réponses  >  le corps du texte

Renvoie JSON à partir du script PHP

Je souhaite renvoyer du JSON à partir d'un script PHP.

Est-ce que je fais simplement écho aux résultats ? Dois-je définir l'en-tête Content-Type ?

P粉752812853P粉752812853399 Il y a quelques jours610

répondre à tous(2)je répondrai

  • P粉539055526

    P粉5390555262023-10-10 09:38:23

    Le code PHP complet et clair qui renvoie JSON est :

    $option = $_GET['option'];
    
    if ( $option == 1 ) {
        $data = [ 'a', 'b', 'c' ];
        // will encode to JSON array: ["a","b","c"]
        // accessed as example in JavaScript like: result[1] (returns "b")
    } else {
        $data = [ 'name' => 'God', 'age' => -1 ];
        // will encode to JSON object: {"name":"God","age":-1}  
        // accessed as example in JavaScript like: result.name or result['name'] (returns "God")
    }
    
    header('Content-type: application/json');
    echo json_encode( $data );

    répondre
    0
  • P粉311563823

    P粉3115638232023-10-10 00:45:19

    Bien que tout se passe généralement bien sans cela, vous pouvez et devez définir l'en-tête Content-Type :

    <?php
    $data = /** whatever you're serializing **/;
    header('Content-Type: application/json; charset=utf-8');
    echo json_encode($data);

    Si je n'utilise pas de framework spécifique, j'autorise généralement certains paramètres de requête à modifier le comportement de sortie. Souvent, pour un dépannage rapide, il peut être utile de ne pas envoyer l'en-tête, ou parfois print_r le chargement des données pour l'observer (bien que dans la plupart des cas cela ne soit pas nécessaire).

    répondre
    0
  • Annulerrépondre