[JAVA-751] JSON.parse(sql) error Created: 04/Feb/13  Updated: 11/Sep/19  Resolved: 08/Feb/13

Status: Closed
Project: Java Driver
Component/s: API
Affects Version/s: 2.7.2
Fix Version/s: None

Type: Task Priority: Blocker - P1
Reporter: fanyongdong Assignee: Unassigned
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

myexclipse ,win7 ,tomcat6.0



 Description   

String sql="{aggregate:\"cms_article\",pipeline:[{$match:{$and:[{\"_id\":{$ne:\"\"}},{\"editor\":{$regex:/sys/}}]}},{$sort:{\"ctrolTime\":1}},{$limit:1}]}";

BasicDBObject bdr=(BasicDBObject)JSON.parse(sql);

there is error .
{aggregate:"cms_article",pipeline:[{$match:{$and:[{"_id":{$ne:""}},{"editor":{$regex:/sys/}}]}},{$sort:{"ctrolTime":1}},{$limit:1}]}
^
at com.mongodb.util.JSONParser.parse(JSON.java:381)
at com.mongodb.util.JSONParser.parseObject(JSON.java:414)
at com.mongodb.util.JSONParser.parse(JSON.java:378)
at com.mongodb.util.JSONParser.parseObject(JSON.java:414)
at com.mongodb.util.JSONParser.parse(JSON.java:378)
at com.mongodb.util.JSONParser.parseArray(JSON.java:718)
at com.mongodb.util.JSONParser.parse(JSON.java:374)
at com.mongodb.util.JSONParser.parseObject(JSON.java:414)
at com.mongodb.util.JSONParser.parse(JSON.java:378)
at com.mongodb.util.JSONParser.parseObject(JSON.java:414)
at com.mongodb.util.JSONParser.parse(JSON.java:378)
at com.mongodb.util.JSONParser.parseArray(JSON.java:718)
at com.mongodb.util.JSONParser.parse(JSON.java:374)
at com.mongodb.util.JSONParser.parseObject(JSON.java:414)
at com.mongodb.util.JSONParser.parse(JSON.java:378)
at com.mongodb.util.JSONParser.parse(JSON.java:328)
at com.mongodb.util.JSON.parse(JSON.java:287)
at com.mongodb.util.JSON.parse(JSON.java:272)
at com.gold169.mongodb.util.MongoDbUtil.reverseJsonFromOri(MongoDbUtil.java:267)
at test.Testt.main(Testt.java:97)



 Comments   
Comment by fanyongdong [ 13/Feb/13 ]

i modifyed like this:
String sql="{aggregate:\"cms_article\",pipeline:[{$match:{$and:[{\"_id\":{$ne:\"\"}},{\"editor\":{$regex:'sys',$options: 's'} }]}},{$sort:{\"ctrolTime\":1}},{$limit:1}]}";
it worked;

Comment by Jeffrey Yemin [ 08/Feb/13 ]

It will work if you use Java's regular expression syntax, rather than Javascript's /sys/ syntax. Try something like:

    String sql = "{aggregate:\"cms_article\",pipeline:[{$match:{$and:[{\"_id\":{$ne:\"\"}},{\"editor\" : { $regex: \"sys\" } } ] } }, {$sort:{\"ctrolTime\":1}},{$limit:1}]}";

Generated at Thu Feb 08 08:52:59 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.