使用JSON初始化JavaScript对象

时间:2011-04-14 12:03:05

标签: javascript json

我想做以下

var my_json = {
    a : 'lemon',
    b : 1
}

function obj(json){
    this.a = 'apple';
    this.b = 0;
    this.c = 'other default';
}

分配后

var instance = obj(my_json)

我想要

instance.a == 'lemon'

2 个答案:

答案 0 :(得分:7)

for(var key in json) {
    if(json.hasOwnProperty(key)) {
        this[key] = json[key];
    }
}

if块是可选的,如果您确定没有任何内容可以扩展Object.prototype(这无论如何都是坏事)。

答案 1 :(得分:1)

如果你想要默认值怎么样;

function obj(json){
  var defaults = {
    a: 'apple',
    b: 0,
    c: 'other default'
  }

  for (var k in json)
    if (json.hasOwnProperty(k))
      defaults[k] = json[k];

  return defaults
}