Maison > interface Web > js tutoriel > Comment convertir des objets JSON simples en instances de classe en JavaScript ?

Comment convertir des objets JSON simples en instances de classe en JavaScript ?

Patricia Arquette
Libérer: 2024-10-18 12:25:30
original
640 Les gens l'ont consulté

How to Convert Plain JSON Objects into Class Instances in JavaScript?

Casting d'objets simples en instances de classe en JavaScript

En JavaScript, lors de la réception d'objets simples d'un serveur sous forme de réponses JSON, vous pouvez rencontrer le besoin de les convertir en instances de classe typées. Cela vous permet d'accéder à des méthodes et propriétés spécifiques à la classe.

Solution :

Une approche consiste à créer un constructeur qui accepte tout objet ressemblant à une instance et le clone. Vous pouvez également implémenter une méthode statique qui convertit les objets en instances :

<code class="javascript">Person.fromJSON = function(obj) {
    // Custom code to create an instance from the object
    return ...;
};</code>
Copier après la connexion

Pour votre scénario spécifique, dans lequel vous avez des objets simples avec des propriétés publiques, vous pouvez utiliser la méthode suivante :

<code class="javascript">var personInstance = new Person();
for (var prop in personLiteral) {
    personInstance[prop] = personLiteral[prop];
}</code>
Copier après la connexion

Cela attribue toutes les propriétés de l'objet brut à l'instance nouvellement créée. De même, vous pouvez créer des instances Animal.

Remarque :

  • JSON ne fournit pas d'informations sur la classe, vous devez donc connaître la structure de l'objet au préalable.
  • Il est recommandé de déplacer la méthode run vers l'objet Animal.prototype plutôt que de la conserver sur chaque instance.

Exemple de code :

<code class="javascript">var persons = JSON.parse(serverResponse);
for (var i = 0; i < persons.length; i++) {
    persons[i] = Object.assign(new Person(), persons[i]); // Use Object.assign for browsers that support it
    for (var j = 0; j < persons[i].animals; j++) {
        persons[i].animals[j] = Object.assign(new Animal(), persons[i].animals[j]);
    }
}</code>
Copier après la connexion

Ce code vous permettra d'utiliser des méthodes spécifiques à une classe telles que people[0].Animals[2].Run();.

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
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal