0

我有一个用户指定的 JSON 对象,我试图在浏览器中处理它。

问题是它需要匹配现有对象。

他们不会意外:

  • 忘记包含一些字段。
  • 拼写字段或故意添加新字段。

有没有办法处理这个?

所以基本上如果我有一个包含 foo 和 bar 成员的对象,如果用户的 json 只是 {} ...并且如果他们不小心发送了类似 {bart: "asdf";} 的东西('bar'上的错字),我想要他们的默认值然后我希望它生成一个异常。

4

1 回答 1

0
var default_object = { ... };
var allowed_keys = [ "key1", "key2", ... ];
var new_object = default_object.clone();
for (var key in json_object) {
    if (json_object.hasOwnProperty(key)) {
        if (allowed_keys.indexOf(key) == -1) {
            // Report error here
        } else {
            new_object[key] = json_object[key];
        }
    }
}

请参阅此处了解如何编写clone我上面使用的方法。如果你使用 jQuery,你可以通过使用$.extend().

于 2013-10-10T23:59:08.807 回答