0

我的 Google Chrome 扩展使用 JSON.parse(oldJSONstring) 创建一个带有配置信息的对象。“oldJSONstring”是从以前的会话中保存在 Chrome 的 localStorage 上的。

由于我有时会添加新功能,因此在创建新对象后,我会手动验证所有配置条目是否存在,如果不存在,我会将它们设置为默认值。这是完成的,以防用户在更新后第一次加载扩展。

我试图想出一种更自动化的方法,比如使用 JSON Schmea,但我真的不知道从哪里开始,而且我的第一轮谷歌搜索没有产生任何我可以使用的东西。

我认为的另一种方法是迭代我的所有默认设置 - 也存储在 JSON 对象中 - 然后确认它们存在于新对象中......但我刚刚意识到我不知道如何迭代所有 JSON 对象属性 :)

这样做的最终目标是我想忘记验证新属性,每次我创建一个新功能并发布一个新版本时......这有什么意义吗?它让我懒惰吗?:D

谢谢!

4

2 回答 2

2

保留默认对象并使用 jQuery$.extend合并 2 个对象。

var defaults={ color:'blue', size:'Large'}

var chromeObj= /* code to grab from storage*/
/* update chromeObj with all key/value pairs in defaults */
 /*  regardless if they already exist or not*/
$.extend( chromeObj, defaults}

/* code to put chromeObj back to storage*/

参考:http : //api.jquery.com/jQuery.extend/

于 2012-10-27T23:54:39.427 回答
1

没有“JSON 对象”* 这样的东西,但循环遍历 Javascript 对象的属性非常容易:如何循环遍历或枚举 JavaScript 对象?

* JSON 只是一种字符串格式,它是 Javascript 对象表示法的子集

于 2012-10-27T22:32:27.153 回答