2013-03-08 2 views
1

Я пытаюсь создать строку запроса JSON для MongoDB. Чтобы поддерживать регулярное выражение, мне нужно создать строку JSON, которая имеет значения без кавычек. Как сделать это в Java,Как избежать котировок вокруг строковых значений при создании JSONObject

Вот пример того, что я пытаюсь сделать,

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

Результат не

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

Выше уже не рассматривается как регулярное выражение по MongoDB , То, что я хотел, это

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

Чтобы MongoDB рассматривал его как регулярное выражение. Есть ли способ сделать это в java?

+1

'{ "Название":. /.* гро * /}' не является допустимым JSON, поэтому я сомневаюсь, что вы найду любой парсер/маршаллер JSON, который сгенерирует это. –

+0

Это приведет к недействительности JSON. Какую библиотеку вы используете и чего хотите достичь? [Для чего вам нужно регулярное выражение?] – nutlike

ответ

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); 
Смежные вопросы