web-dev-qa-db-ja.com

JSONのクエリ言語

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

この要件のために、JSONメッセージ全体をオブジェクトに変換することは、私にとっては少し高価に聞こえるので、この質問です。

XMLのような標準のJSONクエリ言語はありますか?はいの場合、Javaでのこのクエリ言語の実装を最もよく知っているものは何ですか。

参考:サーバー側で新しいサービスを変更または追加することはできません。

11
Farm

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

[〜#〜] edit [〜#〜]ご覧ください http://json.org/Java

この要件のために、JSONメッセージ全体をオブジェクトに変換することは、私にとっては少し高価に聞こえるので、この質問です。

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

6
Tom Squires

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

2
Martijn Verburg