3

JsonPath は、大きな JSON ファイルではかなり遅いようです。

私のプロジェクトでは、ユーザーがクエリ全体を文字列として渡せるようにしたいと考えています。JsonPath を使用すると、クエリ全体$.store.book[3].priceを一度に行うことができるためですJsonPath.read(fileOrString, "$.store.book[3].price", new Filter[0])。Javascript で JSON ファイルを操作するより高速な方法はありますか? クエリ全体を文字列として渡すことができれば理想的ですが、必要に応じてパーサーを作成します。何か案は?

小さな最適化でも役に立ちます。たとえば、現在、クエリを実行するたびに JSON ファイルから読み取っています。最初にファイル全体を文字列にコピーし、代わりに文字列にクエリを実行するほうがよいでしょうか?

編集:「これは Java ではなく Javascript です」と言っている人には、まあ、実際には Java です。JsonPath は Javascript に似たクエリ言語ですが、私が書いているファイルは間違いなく Java です。クエリのみ Javascript で記述します。JsonPath に関する情報とコードのスニペットを次に示します: https://code.google.com/p/json-path/

List toRet;
String query = "$.store.book[3].price";
try { 
    // if output is a list, good
    toRet = (List) JsonPath.read(filestring_, query, new Filter[0]);
} catch (ClassCastException cce) {
    // if output isn't a list, put it in a list
    Object outObj = null;
    try {
        outObj = JsonPath.read(filestring_, query, new Filter[0]);
    } catch (Exception e) {
        throw new DataSourceException("Invalid file!\n", e, DataSourceException.UNKNOWN);
    }
4

0 に答える 0