当前位置:  开发笔记 > 编程语言 > 正文

如何使用JSON创建从对象类型继承的对象?

如何解决《如何使用JSON创建从对象类型继承的对象?》经验,为你挑选了1个好方法。



1> nickf..:

我不这么认为.如果我是你,我会在Person类上创建一个函数来从JSON对象初始化.

function Person() {
    this.loadFromJSON = function(json) {
        this.FirstName = json.FirstName;
    };
}

如果您事先不知道JSON对象所代表的是什么类,可能会在JSON中添加一个额外的变量.

{ _className : "Person", FirstName : "Mike" }

然后有一个"构建器"功能来解释它.

function buildFromJSON(json) {
    var myObj = new json["_className"]();
    myObj.loadFromJSON(json);
    return myObj;
}

更新:既然你说这个类是你无法改变的第三方库的一部分,你可以用原型扩展类,或者编写一个只在外部填充类的函数.

例如:

Person.prototype.loadFromJSON = function(json) {
    // as above...
};

要么

function populateObject(obj, json) {
    for (var i in json) {
        // you might want to put in a check here to test
        // that obj actually has an attribute named i
        obj[i] = json[i];
    }
}


这几乎就是Microsoft Ajax的工作原理.您定义了一个返回特定类型的方法.ajax层查询该类型并创建js对象代理.然后,所有json调用都返回一个'__type'参数,该参数告诉库使用哪个代理来实例化对象.
推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有