Существует новое ключевое слово «класс» в ES6 (ECMAScript 6), и мой класс так:сериализация объекта в строку и unserialise обратно на объект в ECMAScript 6
class MyClass {
constructor() {
this.MyProperty = 0;
}
}
var obj = new MyClass();
console.log(obj);
//result:
//MyClass {MyProperty:0}
var str = JSON.stringify(obj);
console.log(str);
//result:
//"{MyProperty:0}"
Дело в том, «ул» полученный с использованием JSON.stringify, не содержит имени класса и , таким образом, JSON.parse (или другие утилиты) не сможет повторно отключить объект obj. После использования JSON.parse на 'str', результат больше не является экземпляром класса MyClass.
var objFromStr = JSON.parse(str);
console.log(objFromStr);
//result:
//{MyProperty:0}
Как сериализовать экземпляр для строки и несериализовать обратно в экземпляр в ES6? Если JSON.stringify/JSON.parse не работает, какие-либо хорошие библиотеки для использования в NodeJS?
JSON не включает понятие классов. Он представляет собой простые объекты, массивы и примитивы. Если вы хотите восстановить объекты в экземплярах класса, вы можете предоставить настраиваемую функцию («reviver») в качестве второго параметра для 'JSON.parse()' для обработки анализируемых данных и вернуть их так, как вам хотелось бы , – JLRishe
https://www.npmjs.com/package/json-serialize – JLRishe
У вас может быть статический метод для класса, например. 'MyClass.fromJSON()' и реализовать десериализацию самостоятельно. – sdgluck