31
class MyClass {
  constructor() {
    this.foo = 3
  }
}

var myClass = new MyClass()

myClassオブジェクトをjson にシリアライズしたいと思います。

私が考えることができる 1 つの簡単な方法は、すべてのメンバーが実際には JavaScript オブジェクト (配列など) であるため、メンバー変数を保持する変数を維持できると思います。

this.prop.foo = this.foo等々。

toJSON/fromJSONswift/java などの他の言語でクラス オブジェクトを使用していたので、クラス オブジェクト のライブラリが見つかると期待していましたが、javascript のライブラリが見つかりませんでした。

クラス構成が新しすぎるか、私が求めていることは、ライブラリがなくても簡単に実現できる可能性があります。

4

7 に答える 7

29

JS で文字列化する他のオブジェクトと同様に、次を使用できますJSON.stringify

JSON.stringify(yourObject);

class MyClass {
  constructor() {
    this.foo = 3
  }
}

var myClass = new MyClass()

console.log(JSON.stringify(myClass));

また、メソッドstringifyを指定することで、オブジェクトをシリアライズする方法をカスタマイズできることも注目に値します。結果の JSON 文字列でオブジェクトを表すために使用される値は、そのオブジェクトでメソッドを呼び出した結果になります。toJSONtoJSON

于 2016-10-23T10:14:02.393 に答える