2016-10-23 3 views
4
class MyClass { 
    constructor() { 
    this.foo = 3 
    } 
} 

var myClass = new MyClass() 

myClass 개체를 json으로 serialize하고자합니다.ES6 클래스 객체를 JSON으로 serialize

내가 생각할 수있는 쉬운 방법은 모든 멤버가 실제로 자바 스크립트 객체 (배열 등)이기 때문에 멤버 변수를 보유 할 변수를 유지할 수 있다고 생각합니다.

this.prop.foo = this.foo 등등.

나는 swift/java와 같은 다른 언어에서 사용했기 때문에 클래스 객체에 대한 toJSON/fromJSON 라이브러리를 찾을 것으로 예상했지만 자바 스크립트에서는 찾을 수 없습니다.

어쩌면 클래스 구성이 너무 새롭거나 내가 묻는 것은 라이브러리 없이는 쉽게 얻을 수 있습니다.

+0

'JSON.stringify()'에 대해 들어 보셨습니까? 이게 당신이 원하는대로합니까? – Aurora0001

+0

왜 이렇게하고 싶습니까? – Pineda

+0

@ 피네다 예, 나는 반응성 저장소에 직렬화 가능한 데이터를 저장하고 싶었습니다. 그렇다면 대답은 이미 serializable이기 때문에 redux로 클래스 객체를 저장할 수 있다고 제안하는 것 같습니다. – eugene

답변

4

당신이 JS에 캐릭터 라인 화 할 다른 객체와 마찬가지로 JSON.stringify 사용할 수 있습니다

JSON.stringify(yourObject); 

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

 
var myClass = new MyClass() 
 

 
console.log(JSON.stringify(myClass));
주목할 가치 또한

은 사용자 정의 할 수있는 방법 stringify 객체를 toJSON method으로 직렬화합니다. 결과 JSON 문자열에서 개체를 나타내는 데 사용되는 값은 해당 개체에서 toJSON 메서드를 호출 한 결과입니다.

+0

비 직렬화하는 방법. – steve

+0

@IWuZhuo ['JSON.parse (string)'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse) – nbrooks

+1

고마워요. JSON.parse (string) json 객체를 반환합니다. MyClass의 인스턴스가 아닙니다. – steve

관련 문제