JSONのクエリ言語


11

非常に大きなJSONメッセージを返すサーバーがあり、クライアントアプリケーションはこの応答の一部にのみ依存しています。クライアントアプリケーションは、JSONメッセージに「xyz」プロパティが存在するかどうかを確認する必要があり、結果に応じて特定のユースケースを実行します。

この要件については、JSONメッセージ全体をオブジェクトに変換するのは少し費用がかかるため、この質問があります。

XMLのような標準のJSONクエリ言語はありますか?「はい」の場合、Javaでのこのクエリ言語の実装が最もよく知られています。

参考:サーバー側で新しいサービスを変更または追加することはオプションではありません。


javascriptでは、応答が正しいヘッダー(application / json)で送信される場合、JSON応答はjavascriptオブジェクトになります。それはあなたが求めているものですか?あなたの質問からはわかりません。
フロリアンマーゲイン

@Florian同意します。質問を更新して、Java固有のものにします。
ファーム

それから、json.org / javaを試したことがあると思いますか?:-)
フロリアンマーゲイン

私は同じことを疑問に思ってきました。JSON IのためのすべてのJavaライブラリを見てきましたが表示されますが恐ろしくかさばること。JSON.getString(json_string, 'foo.22.bar')(文字列を含むプロパティ "foo"のリストの22要素のプロパティ "bar" の行に沿って何もありません)
-Izkata

または、毎回の解析を回避するためJSON baz = new JSON(json_string); baz.getString('foo.22.bar');に、たとえば、
Izkata

回答:


6

なぜjavascriptを使用しないのですか?(JSONは結局JavaScript Object Notationです)。その後、JSONを解析または操作する必要はありません。

EDITは見持ってhttp://json.org/javaを

この要件については、JSONメッセージ全体をオブジェクトに変換するのは少し費用がかかるため、この質問があります。

そうではありません。オブジェクトの逆シリアル化は安価です(自分でテストしてください)。外部APIとの通信は、桁違いに高価になります。文字列を直接操作することもできますが、これは少し速くなる可能性がありますが、バグのリスクがあり、拡張性が低下し、可読性が低下します。高コスト。


質問を更新し、Java固有にしました。
ファーム

クライアントアプリケーションは、LWUITのみをサポートするHeadunitで実行されているため、javascriptを使用するオプションはありません
ファーム

2

「測定、推測しないで」。はい、オブジェクトのシリアル化と逆シリアル化は理論的には高価ですが、アプリケーションのパフォーマンス目標は何ですか?オブジェクトの(デ)シリアル化がパフォーマンスを許容できないレベルに押し上げない場合は、心配しないでください:-)。もちろん、重要なのは、パフォーマンスの境界がどうあるべきか(2秒でのユーザーへの応答時間など)を知り、要求/応答サイクルの各部分を測定することです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.