9

私は現在、かなりの量の JSON データが前後に送信され、JavaScript オブジェクトのリストとしてブラウザーによって保存されるプロジェクトに取り組んでいます。例えば:

person: {
   // Primary Key
   key: "id",
   // The actual records
   table: {
       "1": {id: 1, name: "John", surname: "Smith", age: 26},
       "2": {id: 2, name: "Mary", surname: "Brown", age: 19},
       // etc..
   },
   indexes: {
       // Arrays of pointers to records defined above
       "name": [
            {id: 89, name: "Aaron", surname: "Jones", age: 42},
            // etc..
       ]
   }

このデータを効率的に操作するために、あらゆる種類のインデックス作成および並べ替えアルゴリズムをコーディングしていることに気づきました。この種のことは以前に行われたに違いないと考え始めています。

この種のデータ操作を実行するためにExt.data.StoreおよびExt.data.Recordオブジェクトを使用した経験がありますが、ジュニア開発者にとっては複雑すぎると思います。私が取り組んでいるプロジェクトは小さなモバイル アプリケーションです。そのためだけに 300K 以上のライブラリを追加する余裕はないので、本当に最小限のものが必要です。

次のような Javascript JSON 操作フレームワークがある場合のアイデア:

  1. を保存することができ、
  2. 取得
  3. ソート
  4. JSONデータを反復処理し、
  5. クリーンな APIを使用して、
  6. 最小限のパフォーマンスの低下(モバイルには多くの計算能力がありません)
  7. 理想的には<10Kの小さなペイロードですか?

私はあまりにも多くを求めているかもしれませんが、誰かがこのようなものを使用していることを願っています...私が探しているのは、 jQueryに相当する JSON です。おそらくそれほど風変わりではありません。

4

3 に答える 3

12

jsonQを見てください

質問で指摘されているすべての要件を満たしています。

  • 収納できる、
  • 取得する
  • JSONデータを反復処理し、

トラバース (find、siblings、parent など) と操作メソッド like(value、append、prepend) を提供します。

  • 選別

jsonQ オブジェクトで実行される直接配列ソート メソッドとソート メソッドを提供します。(どちらのソート方法も再帰的に実行されます)

  • きれいな API で

JSON 用の API を jQuery DOM API と同じにする試みです。あなたがjqueryに精通しているなら。追いつくのは簡単です。api のより完全なドキュメントが利用可能です。

  • 最小限のパフォーマンスドラッグ

より効率的なデータをトラバースするために内部で使用される JSON データの jsonQ の初期化時に新しい形式を作成します。(すべてのループを一度に持つようなものなので、そのjsonのたびに繰り返すためにループオーバーループを作成する必要はありません)。

  • 理想的には<10Kの小さなペイロードですか?

縮小版は 11.7 kb です。

于 2013-11-17T06:47:22.890 に答える
0

実際、あなたの質問は良くないと思います。あなたの例から、JSON で SQL のようなストレージをエミュレートしようとしていることがわかります。たぶん、あなたはIndexedDBを取る必要がありますか?

jsonpathは、正確な要件のポイント 4 ~ 7 (および場合によっては 3) に一致し、JSONグローバル オブジェクトは、それぞれを 1 回だけ呼び出すだけで 1 と 2 を許可します。

また、IMHO の要件は非現実的です。特に、サイズに関する最後の要件は非現実的です。

于 2012-03-16T10:00:22.153 に答える
0

Lawnchairはあなたが探しているものだと思います。そのホームページには、モバイルを念頭に置いて作られていると書かれていますが、私は以前に使用したことがないので、それについてはコメントできません.

これは単純なキー値ストアですが、CouchDB のように独自のインデックスを定義できます。セレクターのサポートは見たことがありませんが、簡単な選択を約束するクエリ プラグインが利用可能です。

jQuery のようなものは、CSS セレクター ライブラリである sizzle に依存していますが、これはあなたの場合には当てはまりません。XPath は主にツリー構造である XML で使用されるため、XPath が最善の策であると私は考えています。JSON オブジェクトはツリーとして表現できるため、「CSS っぽい」方法で JSON Xpath セレクターをサポートする小さなライブラリであるJSONSelectを見つけました。

何らかの方法で JSONSelect を Lawnchair にプラグインできれば、素晴らしい組み合わせを見つけたと思います :)

于 2012-03-16T14:27:50.377 に答える