Heim  >  Artikel  >  Web-Frontend  >  Wie konvertiere ich einfache JSON-Objekte in Klasseninstanzen in JavaScript?

Wie konvertiere ich einfache JSON-Objekte in Klasseninstanzen in JavaScript?

Patricia Arquette
Patricia ArquetteOriginal
2024-10-18 12:25:30606Durchsuche

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

Umwandeln einfacher Objekte in Klasseninstanzen in JavaScript

Wenn Sie in JavaScript einfache Objekte von einem Server als JSON-Antworten empfangen, kann es vorkommen, dass müssen sie in typisierte Klasseninstanzen umwandeln. Dadurch können Sie auf klassenspezifische Methoden und Eigenschaften zugreifen.

Lösung:

Ein Ansatz besteht darin, einen Konstruktor zu erstellen, der jedes Objekt akzeptiert, das einer Instanz ähnelt, und es klont. Alternativ können Sie eine statische Methode implementieren, die Objekte in Instanzen umwandelt:

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

Für Ihr spezifisches Szenario, in dem Sie einfache Objekte mit öffentlichen Eigenschaften haben, können Sie die folgende Methode verwenden:

<code class="javascript">var personInstance = new Person();
for (var prop in personLiteral) {
    personInstance[prop] = personLiteral[prop];
}</code>

Dadurch werden alle Eigenschaften des einfachen Objekts der neu erstellten Instanz zugewiesen. Ebenso können Sie Animal-Instanzen erstellen.

Hinweis:

  • JSON stellt keine Klasseninformationen bereit, daher müssen Sie die Objektstruktur vorher kennen.
  • Es wird empfohlen, die Ausführungsmethode auf das Animal.prototype-Objekt zu verschieben, anstatt sie für jede Instanz beizubehalten.

Beispielcode:

<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>

Mit diesem Code können Sie klassenspezifische Methoden wie „persons[0].Animals[2].Run();.

verwenden

Das obige ist der detaillierte Inhalt vonWie konvertiere ich einfache JSON-Objekte in Klasseninstanzen in JavaScript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn