0

私は、基本的な Web CRUD アプリの間で、Java Play Framework、MongoDB、および Jongo を組み合わせて使用​​しています。文字列に不正な文字が含まれていないにもかかわらず、JSON 解析例外が発生し続けます。実際には、ステートメントの最後にある中括弧を閉じることに失敗しています。以下は私のエラーとコードです。クエリ文字列は単なる文字列ビルダーであり、オブジェクトが空であるか値があるかを検索し、値がある場合は文字列に追加されます。

ジョンゴ方式:

public static Iterable<OneDomain> findWithQueryString(String queryString){
    return domains().find("{#}", queryString).as(OneDomain.class);
}

コントローラー メソッド: 文字列ビルダーの例:

        if(queryStringBuilder.toString().equalsIgnoreCase("")){
            queryStringBuilder.append("date: {$gte : " + searchObj.dateFrom + ", $lt: " + searchObj.dateTo + "}");
        }else{
            queryStringBuilder.append(" , ");
            queryStringBuilder.append("date: {$gte : " + searchObj.dateFrom + ", $lt: " + searchObj.dateTo + "}");
        }

        String queryString = queryStringBuilder.toString();

        Iterable<OneDomain> filteredIterable = OneDomain.findWithQueryString(queryString);

このエラーが表示されます:

   Caused by: com.mongodb.util.JSONParseException:
   {"source : Online Lists , blacklist : true , vetted : true , is : false , isNot : true"}
                                                                                          ^

「}」のエラーで終わります。

それに加えて、\" を入力して文字をエスケープしようとすると、\"date\" になり、次のように解析されてエラーになります。

   Caused by: com.mongodb.util.JSONParseException:
   {"\"source\" : \"Online Lists\" , \"blacklist\" : true , \"vetted\" : true , \"is\" : false , \"isNot\" : true"}
4

1 に答える 1