blog

jsonデータ構造を照会する8つの方法

複雑なJSONデータ構造でマッチを見つける」ことに困ったことはありませんか?そのための8つの異なる方法を紹介します。...

Dec 2, 2013 · 4 min. read
シェア

複雑な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の構文チェックは自分でできるはずです。

***どれがプロジェクトに適しているかは、あなたが決めなければなりません。

Read next