如何在创建JSONObject时避免使用字符串值的引号

时间:2013-03-08 15:22:16

标签: java json mongodb

我正在尝试为MongoDB创建JSON查询字符串,为了支持正则表达式,我需要创建具有不带引号的值的JSON字符串。如何在java中完成此任务,

这是我想要做的例子,

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

结果是

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

上面不再被MongoDB视为正则表达式。我想要的是,

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

因此MongoDB将其视为正则表达式。有没有办法在java中实现这一点?

2 个答案:

答案 0 :(得分:1)

/分隔的正则表达式语法是JavaScript构造。在Java中,您必须使用java.util.regex.Pattern,如下所示:

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

答案 1 :(得分:0)

试试这个,

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

  obj.put("title", startExpr  + title + endExpr );