javascript从解析的对象调用Json Parse

时间:2016-08-16 23:58:53

标签: javascript json serialization

我在ES6中有一个Javascript类,我想写一个LoadFromJson方法。

问题是JSON.parse返回一个对象,我不能写:

//MyObject.loadFromJson method
loadFromJson(JsonString)
 {
   this=JSON.parse(jsonString); //INVALID//
 }

我怎样才能在课堂上实现这一目标。 我知道我可以写:

myObject = JSON.parse(jsonString);

但这不是我想要的,我需要:

myObject = new MyObjectClass();
myObject.loadFromJson(JsonString);

我想实现一个"撤消机制"在我的对象中,并能够保存/恢复对象。

1 个答案:

答案 0 :(得分:2)

您无法分配到this。这是一个复制解析对象中所有属性的示例。

class MyObjectClass {
  loadFromJSON(jsonString) {
    const parsed = JSON.parse(jsonString);
    for (const key in parsed) this[key] = parsed[key];
  }
}

const myObject = new MyObjectClass();
myObject.loadFromJSON('{"a":2,"b":null,"c":"abc"}');
console.log(myObject);