Objet PHP en objet tableau de chaînes JSON

WBOY
Libérer: 2023-05-19 21:10:06
original
790 Les gens l'ont consulté

Dans le développement PHP, la conversion d'objets en chaînes JSON ou en objets tableau JSON est une tâche très courante. Les objets chaîne JSON et tableau JSON sont un format d'échange de données standard qui permet l'échange de données entre différentes plates-formes et langages de programmation et est très facile à lire et à analyser.

Cet article explique comment convertir un objet en une chaîne JSON ou un objet tableau JSON en PHP. Nous expliquerons ce processus à travers des exemples et discuterons de certains problèmes courants liés à ce processus.

Objet en chaîne JSON

En PHP, vous pouvez convertir des objets en chaînes JSON via la fonction json_encode intégrée. Cette fonction accepte un objet comme argument et renvoie sa représentation sous forme de chaîne JSON. Voici un exemple :

class Person {
    public $name;
    public $age;

    public function __construct($name, $age) {
        $this->name = $name;
        $this->age = $age;
    }
}

$person = new Person('Tom', 27);
$jsonString = json_encode($person);

echo $jsonString;
Copier après la connexion

Exécutez le code ci-dessus et vous pouvez voir que le résultat est :

{"name":"Tom","age":27}
Copier après la connexion
Copier après la connexion
Copier après la connexion

Vous pouvez voir que l'objet $person est converti avec succès en chaîne JSON. Dans la chaîne JSON, chaque propriété de l'objet est convertie en une paire clé-valeur et la clé utilise le nom de la propriété.

Il est à noter que si les propriétés sont privées ou protégées, la fonction json_encode ne pourra pas y accéder. Si vous devez inclure ces attributs dans la chaîne JSON, vous pouvez définir une fonction toArray dans la classe pour convertir les attributs qui doivent être exportés en un tableau associatif, puis transmettre ce tableau à la fonction json_encode.

class Person {
    private $name;
    private $age;

    public function __construct($name, $age) {
        $this->name = $name;
        $this->age = $age;
    }

    public function toArray() {
        return array(
            'name' => $this->name,
            'age' => $this->age
        );
    }
}

$person = new Person('Tom', 27);
$jsonString = json_encode($person->toArray());

echo $jsonString;
Copier après la connexion

Exécutez le code ci-dessus et vous pouvez voir que la sortie est toujours :

{"name":"Tom","age":27}
Copier après la connexion
Copier après la connexion
Copier après la connexion

Objet en objet tableau JSON

En plus de convertir l'objet en chaîne JSON, vous pouvez également le convertir en objet tableau JSON . Lors de la conversion d'un objet en objet tableau JSON, chaque propriété est convertie en une paire clé-valeur et la clé utilise le nom de la propriété.

En PHP, vous pouvez convertir l'objet en un objet tableau JSON en convertissant l'objet en tableau, puis en passant le tableau à la fonction json_encode. Voici un exemple :

class Person {
    public $name;
    public $age;

    public function __construct($name, $age) {
        $this->name = $name;
        $this->age = $age;
    }
}

$person = new Person('Tom', 27);
$jsonArray = json_encode((array)$person);

echo $jsonArray;
Copier après la connexion

Exécutez le code ci-dessus et vous pouvez voir que le résultat est :

{"name":"Tom","age":27}
Copier après la connexion
Copier après la connexion
Copier après la connexion

Vous pouvez voir que l'objet $person est converti avec succès en un objet tableau JSON. Dans un objet tableau JSON, chaque propriété de l'objet est convertie en une paire clé-valeur et la clé utilise le nom de la propriété.

Il est à noter que lors de la conversion d'un objet en tableau, les propriétés privées ou protégées seront ignorées. Si vous devez les inclure dans un objet tableau JSON, vous pouvez le faire en définissant une fonction toArray dans la classe, similaire au processus de conversion d'un objet en chaîne JSON.

FAQ

  1. Comment gérer les objets imbriqués dans les objets ?

Si l'objet contient d'autres objets, vous pouvez convertir de manière récursive ces objets en tableaux ou tableaux associatifs dans la fonction toArray, puis fusionner ces tableaux en un grand tableau. Lors du passage de ce grand tableau à la fonction json_encode, elle convertira récursivement ces tableaux en objets JSON ou en objets tableau JSON.

  1. Comment gérer les objets dont les attributs sont des tableaux ou des ressources ?

Si l'objet contient des attributs qui sont des tableaux ou des ressources, ces attributs ne peuvent pas être directement convertis en objets JSON ou en objets tableau JSON. Lors du processus de conversion de l'objet en tableau, vous pouvez appeler la fonction json_encode sur ces attributs pour les convertir en objets JSON ou en objets tableau JSON, puis les fusionner dans un grand tableau en un seul élément.

  1. Comment gérer les objets contenant du chinois ?

Si l'objet contient des chaînes chinoises, la fonction json_encode les encodera par défaut en codage Unicode. Si vous devez les encoder en chaînes UTF-8, vous pouvez transmettre l'option JSON_UNESCAPED_UNICODE à la fonction json_encode.

class Person {
    public $name;
    public $age;

    public function __construct($name, $age) {
        $this->name = $name;
        $this->age = $age;
    }
}

$person = new Person('李四', 27);
$jsonString = json_encode($person->toArray(), JSON_UNESCAPED_UNICODE);

echo $jsonString;
Copier après la connexion

Exécutez le code ci-dessus et vous pouvez voir que le résultat est :

{"name":"李四","age":27}
Copier après la connexion

Dans le développement PHP, la conversion d'objets en chaînes JSON ou en objets tableau JSON est une tâche de base. Cet article présente comment implémenter ce processus en PHP et aborde certains problèmes courants liés à ce processus. J'espère qu'il sera utile aux développeurs PHP.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal