var a = new Map([[ 'a', 1 ]]);
a.get('a') // 1
var forStorageSomewhere = JSON.stringify(a);
// Store, in my case, in localStorage.
// Later:
var a = JSON.parse(forStorageSomewhere);
a.get('a') // TypeError: undefined is not a function
不幸的是JSON.stringify(a);简单地返回'{}',这意味着当恢复时它变成一个空对象.
我发现es6-mapify允许在Map和普通对象之间进行向上/向下转换,因此这可能是一个解决方案,但我希望我只需依靠外部依赖来持久保存我的地图.
我有硬编码的类来表示我的Aurelia应用程序中的模型.这是一个'PostEdit'模型:
var _postID = Symbol();
var _title = Symbol();
var _text = Symbol();
export class PostEdit {
    constructor(postEdit) {
        this[_postID] = postEdit.postID;
        this.title = postEdit.title;
        this.text= postEdit.text;
    }
    get postID() { return this[_postID]; }
    get title() { return this[_title]; }
    set title(val) { this[_title] = val; }
    get text() { return this[_text]; }
    set text(val) { this[_text] = val; }
}
该对象被操纵后,我需要PUT和POST它回服务器.但它看起来像Aurelia的HttpClient是发送一个空JSON字符串({}).在研究它时,似乎Symbols在将ES6类转换为时忽略了JSON.  
如何将所有属性都转换为JSON …