2013-03-08 30 views
1

我想爲MongoDB創建JSON查詢字符串,爲了支持正則表達式,我需要創建具有不帶引號的值的JSON字符串。如何在Java中實現這一點,如何避免在創建JSONObject時圍繞字符串值的引號

這裏是什麼,我試圖做的例子,

JSONObject obj= new JSONObject(); 
    String title = "gro"; 
    obj.put("title", "/.*" + title + ".*/"); 

結果是

{"title ":"/.*gro.*/"} 

以上不再由MongoDB的正則表達式處理。我想要的是,

{"title ":/.*gro.*/} 

這樣的MongoDB會將其作爲正則表達式。有什麼辦法可以在java中完成這個任務嗎?

+1

'{ 「稱號」:/.* GRO * /}'是不是有效的JSON,所以我懷疑你會發現任何可以生成該消息的JSON解析器/編組器。 – 2013-03-08 15:27:39

+0

這將導致無效的JSON。你在使用什麼庫,你想完成什麼? [你需要什麼正則表達式?] – nutlike 2013-03-08 15:27:52

回答

1

/定界正則表達式語法是一個JavaScript構造。在你必須使用java.util.regex.Pattern這樣的:

BasicDBObject query = new BasicDBObject("title", Pattern.compile(".*gro.*")); 
0

試試這個,

JSONObject obj= new JSONObject(); 
    String title = "gro"; 
    String startExpr = "/.*"; 
    String endExpr = ".*/"; 

    obj.put("title", startExpr + title + endExpr); 
相關問題