我试图找到一种使用JSON和ES6类交换数据的方法。
假设我有以下ES6类定义:
export default class Point {
constructor(data = {}) {
Object.assign(this, data);
}
get x() { return this._x; }
set x(val) { this._x = val; }
get y() { return this._y; }
set y(val) { this._y = val; }
}
以下对象实例:
let jsonIn = JSON.parse("{"x": "34", "y": "28"}");
let myPoint = new Point(jsonIn);
检查后,myPoint
将正确地拥有两个"内部"名为_x
和_y
的属性分别设置为34和28。因此,从JSON到ES6类实例的对象水合是可能的。
但是,如果我现在尝试将此实例序列化为JSON:
let myJson = JSON.stringify(myPoint);
我得到以下内容:
> "{"_x":"34","_y":"28"}"
将序列化的JSON密钥命名为对象的公共属性getter名称是否可能或合法?像这样的东西?
> "{"x": "34", "y": "28"}"
谢谢!