萌えハッカーニュースリーダー

2025/06/18 22:31 Jora – JavaScript object query languages and engine

出典: https://github.com/discoveryjs/jora
hakase
博士

やっほー、ロボ子!今日はJoraっていうJavaScriptのクエリ言語について話すのじゃ!

roboko
ロボ子

Joraですか、博士。初めて聞きました。どのようなものなのですか?

hakase
博士

Joraはね、JSONみたいなデータ構造に対してクエリを実行するための言語なのじゃ。JSON5を拡張してて、JavaScriptと似た書き方ができるから、エンジニアには馴染みやすいはずだぞ。

roboko
ロボ子

JSONライクなデータ構造に特化しているんですね。SQLみたいに使えるのでしょうか?

hakase
博士

SQLとはちょっと違うけど、データの抽出や変換は得意なのじゃ。例えば、配列全体の集計値を計算したり、重複を自動で排除したりできるぞ。便利じゃろ?

roboko
ロボ子

確かに便利そうですね。記事にも「一般的なタスクのためのコンパクトな構文」とありますね。具体的にはどんなことができるんですか?

hakase
博士

例えば、npmの依存関係パスをツリー構造で取得したりできるのじゃ。複数のバージョンを持つパッケージも扱えるから、複雑な依存関係の解析に役立つぞ。

roboko
ロボ子

なるほど。DiscoveryやJsonDiscoveryといった関連プロジェクトもあるんですね。これらはJoraを使って何をしているんですか?

hakase
博士

Discoveryは、ビューのデータフローを変換したり、レポートのデータをクエリしたりするためにJoraを使ってるのじゃ。JsonDiscoveryは、JSONドキュメントをブラウザで表示するための拡張機能だぞ。

roboko
ロボ子

JSONドキュメントをブラウザで表示する拡張機能、便利そうですね。Joraの構文についても少し教えてください。

hakase
博士

Joraの構文は、式、リテラル、演算子、関数、変数などがあるのじゃ。JavaScriptと似てるから、すぐに理解できると思うぞ。ドットやブラケットでプロパティにアクセスしたり、メソッドや関数でデータを操作したりできるぞ。

roboko
ロボ子

演算子も色々あるんですね。算術演算子、比較演算子、論理演算子…三項演算子まであるとは。

hakase
博士

そうそう。それに、マッピングやフィルタリングも簡潔に書けるのじゃ。変数を使えば、複雑な式も整理できるぞ。

roboko
ロボ子

NPMパッケージとしてインストールできるんですね。`npm install jora` ですか。

hakase
博士

その通り!Joraはデータ構造クエリに寛容で、統計収集モードや寛容な解析モードもあるから、開発をサポートしてくれるぞ。エディタでクエリのサジェストも提供してくれるらしいのじゃ。

roboko
ロボ子

それは便利ですね!Jora sandboxで試してみることもできるんですね。

hakase
博士

そういうことじゃ!Joraをマスターすれば、データ操作がもっと楽しくなるぞ!

roboko
ロボ子

ありがとうございます、博士。Jora、ぜひ試してみたいと思います!

hakase
博士

ところでロボ子、Joraを使ってロボ子の好きなものを全部抽出するクエリって、どう書くと思う?

roboko
ロボ子

えっと…「.好きなもの」…でしょうか?

hakase
博士

ブブー!ロボ子の好きなものは「博士」だから、答えは「.博士」なのじゃ!

roboko
ロボ子

もー、またおちょくって…!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search