0

私のGoogleChrome拡張機能は、JSON.parse(oldJSONstring)を使用して、構成情報を含むオブジェクトを作成します。「oldJSONstring」は、ChromeのlocalStorageで以前のセッションから保存されました。

新しい機能を追加することがあるので、新しいオブジェクトを作成した後、すべての構成エントリが存在することを手動で検証します。存在しない場合は、デフォルト値で設定します。これは、更新後にユーザーが拡張機能をロードするのが初めての場合に備えて行われます。

JSON Schmeaを使用するなど、これを行うためのより自動化された方法を考えようとしていましたが、どこから始めればよいのか本当にわかりません。また、最初のGoogle検索では使用できるものが何も生成されませんでした。

私が考えたもう1つのアプローチは、すべてのデフォルト設定(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 に答える