複雑なJSONデータ構造からマッチを見つける」のに苦労したことはありませんか?ここでは8種類の方法をご紹介します:
JsonSQL
JsonSQLは、SQLのselect文を使ってjsonデータ構造を照会する機能を実装しています。
jsonsql.query("select * from json.channel.items order by title desc",json);
ホームページ: ql/
JSONPath
JSONPathは、JSONデータ構造に対するXPathのようなものです。
例
jsonPath( books, '$..book[(@.length-1)]')
jfunk
jFunkを使用すると、複雑なJSONやJavascriptオブジェクトを取得することができます。jFunk APIは、jQuery APIとほぼ同じように設計されています。DOMを対象とするAPIを除き、jQuery APIをそのままコピーしています。
例
Jf("> vegetables > *[color=Orange]",Food).get();
ホームページ: /nk/
タフィーDB
Javascriptオブジェクトのリテラル値がレコードのように見えることに気づいたことはありませんか?TaffyDBは、Javascriptでデータを扱う方法を大幅に改善するアイデアを実装するための強力なデータベース機能を提供するJavascriptライブラリです。
var kelly = friends({id:2}).first();
ホームページ
linq.js
var queryResult2 = Enumerable.From(jsonArray)
.Where("$.user.id < 200")
.OrderBy("$.user.screen_name")
.Select("$.user.screen_name + ':' + $.text")
.ToArray();
ホームページ
オブジェク
objeqはPOJSOのリアルタイムクエリを実装するシンプルなライブラリです。
var res = $objeq(data, "age > 40 && gender == 'female' -> name");
// --> Returns ['Jessica']
json:select()
CSSのようなセレクタを使用してJSONをクエリします。
.lang:val("Bulgarian") ~ .level
ホーム: #it
ポールのプログラミング・パールにおけるJavascriptの配列フィルタリング
var a = [1,2,3,4,5,6,7,8,9,10];
// return everything
a.where( "( ) => true" ) ;
// --> [1,2,3,4,5,6,7,8,9,10]
// return even numbers
a.where( "( n, i ) => n % 2 == 0" ) ;
// --> [2,4,6,8,10]
// query first 6 products whose category begins with 'con' using extra param and regular expression
products.where( "( el, i, res, param ) => res.length <= 6 && param.test( el.cat )", /^con/i);
// using customer table data from SQL Server's northwind database...
customers.where( "( el, i, res, param ) => el.country == param", "USA" );
ホームページ
これは現在、JSONデータ構造をクエリするための私のお気に入りの方法です。とてもシンプルで、作者によるととても速いそうです。
その背後にある考え方は、John ResigのJavaScript Micro-Templatingに似ています:正しい式を使用して、非常に単純な文字列をJavascript関数に変換します。
もちろん、世の中にはもっと強力なソリューションがあります。 Paulが実装したプロトタイプでは、フィルター式の構文チェックがまだ欠けていますが、Javscriptの構文チェックは自分でできるはずです。
***どれがプロジェクトに適しているかは、あなたが決めなければなりません。





