有没有办法将 JSON 字符串解析为现有的 Javascript 对象:假设我已经创建了这个对象:
var ClientState = function(){
this.userId ="";
this.telephoneState = "UNKNOWN";
this.agentState = "UNKNOWN";
this.muteState = "UNKNOWN";
this.number = "";
this.ready = false;
}
ClientState.prototype = {
doNastyStuff: function(){
//do something here
}
//other methods here
}
我有这个json通过电线:
{"userId":"xyz","telephoneState":"READY","agentState":"UNKNOWN","muteState":"MUTED","number":"","ready":false}
是否可以反序列化为上面指定的对象?这样我就可以使用上面指定的所有方法?或者一般来说是否可以反序列化为特定的目标对象(在此目标对象中不指定反序列化)?(我知道我可以创建一个接受 json 或解析对象的构造函数。)
是的!您可以使用Object.assign
另一个对象覆盖一个对象的属性:
var ClientState = function() {
this.userId = "";
this.telephoneState = "UNKNOWN";
this.agentState = "UNKNOWN";
this.muteState = "UNKNOWN";
this.number = "";
this.ready = false;
}
var c = new ClientState();
console.log('prior assignment: ', c);
Object.assign(c, {
"userId": "xyz",
"telephoneState": "READY",
"agentState": "UNKNOWN",
"muteState": "MUTED",
"number": "",
"ready": false
});
console.log('after assignment: ', c);
请注意,它将通过匹配相应的键用目标对象(第二个对象)覆盖源对象(第一个对象)的所有属性。目标对象中不存在的键在源对象中保持不变。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句