将 JSON 反序列化为特定/现有的 JavaScript 对象

德莫里茨

有没有办法将 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 或解析对象的构造函数。)

31piy

是的!您可以使用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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将JSON响应反序列化为特定的类对象

来自分类Dev

将 json(javascript 对象)反序列化为 c# 对象

来自分类Dev

将Json对象反序列化为.NET对象

来自分类Dev

将 json 对象反序列化为 C# 对象

来自分类Dev

将JSON对象反序列化为类

来自分类Dev

将JSON反序列化为C#对象

来自分类Dev

将JSON数组反序列化为对象的Swift数组

来自分类Dev

将Json对象反序列化为列表?

来自分类Dev

将JSON反序列化为对象C#

来自分类Dev

将嵌套的JSON反序列化为C#对象

来自分类Dev

将JSON对象反序列化为数组

来自分类Dev

如何将JSON反序列化为Swift对象?

来自分类Dev

将JSON反序列化为对象时出错

来自分类Dev

Xamarin.Forms将json反序列化为对象

来自分类Dev

将Json反序列化为对象异常

来自分类Dev

无法将JSON反序列化为强类型对象

来自分类Dev

将多行JSON反序列化为C#对象

来自分类Dev

将json文件反序列化为对象C#

来自分类Dev

无法将json反序列化为C#对象

来自分类Dev

将JSON对象反序列化为数组

来自分类Dev

将Json反序列化为Class对象

来自分类Dev

将Collection + JSON反序列化为对象

来自分类Dev

将JSON对象反序列化为数组

来自分类Dev

将JSON反序列化为C#对象

来自分类Dev

将json结果反序列化为动态对象

来自分类Dev

将JSON反序列化为.net对象

来自分类Dev

将JSON反序列化为C#对象列表

来自分类Dev

无法将 JSON 响应反序列化为 Java 对象

来自分类Dev

将JSON中的嵌套对象反序列化为特定类型