ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript でプレーン JSON オブジェクトをクラス インスタンスに変換するにはどうすればよいですか?

JavaScript でプレーン JSON オブジェクトをクラス インスタンスに変換するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-18 12:25:30606ブラウズ

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

JavaScript でプレーン オブジェクトをクラス インスタンスにキャストする

JavaScript では、サーバーからプレーン オブジェクトを JSON 応答として受信するときに、それらを型付きクラスのインスタンスにキャストする必要があります。これにより、クラス固有のメソッドとプロパティにアクセスできるようになります。

解決策:

1 つの方法は、インスタンスに似た任意のオブジェクトを受け入れ、そのクローンを作成するコンストラクターを作成することです。あるいは、オブジェクトをインスタンスに変換する静的メソッドを実装することもできます:

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

パブリック プロパティを持つプレーン オブジェクトがある特定のシナリオでは、次のメソッドを使用できます:

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

これにより、プレーン オブジェクトのすべてのプロパティが新しく作成されたインスタンスに割り当てられます。同様に、Animal インスタンスを作成できます。

注:

  • JSON はクラス情報を提供しないため、オブジェクト構造を事前に知っておく必要があります。
  • run メソッドを各インスタンスに保持するのではなく、Animal.prototype オブジェクトに移動することをお勧めします。

サンプル コード:

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

このコードにより、person[0].Animals[2].Run(); などのクラス固有のメソッドを使用できるようになります。

以上がJavaScript でプレーン JSON オブジェクトをクラス インスタンスに変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。