recherche

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

Différence entre la méthode toJson et la méthode jsonSerialize ?

Quand je regarde les méthodes de la classe Illuminate\Support\MessageBag, la classe ressemble à ceci :

utilisez JsonSerializing ;
utilisez Illuminate\Contracts\Support\Jsonable ;
....

la classe MessageBag implémente Jsonable, JsonSerializing...

/*
 * Convertissez l'objet en sa représentation JSON.
 */
fonction publique toJson ($options = 0) {
    return json_encode($this->jsonSerialize(), $options);
}

/*
 *Convertissez l'objet en quelque chose de sérialisable JSON.
 */
fonction publique jsonSerialize() {
    return $this->toArray();

S'il vous plaît, dites-moi, seniors, quelle est la différence entre la méthode toJson et la méthode jsonSerialize ? Quand sera-t-il appelé implicitement ?

大家讲道理大家讲道理2821 Il y a quelques jours779

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

  • 天蓬老师

    天蓬老师2017-05-16 13:02:38

    Référez-vous au document : http://php.net/manual/zh/json...
    Téléchargez le code :

    class j implements JsonSerializable{
        public function jsonSerialize(){
            return "Hello world!";
        }
    }
    echo json_encode(new j());

    JsonSerializing lui-même sert spécifiquement la sérialisation json_encode, et toJson n'est que la méthode Jsonable de laravel.

    En d'autres termes, lorsque vous utilisez json_encode pour sérialiser cet objet, la méthode jsonSerialize sera appelée.

    Et votre toJson encapsule généralement simplement la fonction json_encode, juste pour la sémantique.

    répondre
    0
  • phpcn_u1582

    phpcn_u15822017-05-16 13:02:38

    Vous aimez ça ?

     public function jsonSerialize()
        {
            return $this->toArray();
        }
    
    public function toJson($options = 0)
        {
            return json_encode($this->jsonSerialize(), $options);
        }    

    répondre
    0
  • PHP中文网

    PHP中文网2017-05-16 13:02:38

    Je n'y connais pas grand chose, alors je l'ai cherché pour vous :
    http://www.cnblogs.com/gniele...

    répondre
    0
  • phpcn_u1582

    phpcn_u15822017-05-16 13:02:38

    Merci pour l'invitation !

    Parce que je n'ai jamais utilisé larval, pouvez-vous poster le code spécifique de la méthode toJson et de la méthode jsonSerialize

    répondre
    0
  • Annulerrépondre