2014-09-26 2 views
1

사전에 json에서 mongodb 쿼리를 구문 분석하려고하는데 JObject.Parse가 예외를 throw합니다.정규식이있을 때 JSON 구문 분석이 실패합니다

json으로 문자열은 예외 메시지입니다

{ vendor: "xyx", product: { $in : [ /prod1/i, /prod2/i, /prod3/i ] } } 

아래 같은 것입니다

오류 구문 분석 주석입니다. 예상 됨 : *, p가 있습니다. $ 1 '경로의'product. $ 1 '위치 50.

답변

0

JSON이 아니라 MongoDB라고 말하는 것 같습니다.

MongoDB의 쿼리

, 당신은이 작업을 수행 할 필요가 :

{ vendor: "xyx", product: { $in : [ Pattern.compile(/prod1/i), Pattern.compile(/prod2/i), Pattern.compile(/prod3/i) ] } } 
1

JSON 정규 표현식을 지원하지 않지만 대신 $regex 쿼리 연산자 구문을 사용하도록 JSON 문자열을 변경할 수 있습니다 :

{ vendor: "xyx", product: { $in: [ 
    {$regex: "prod1", $options: "i"}, 
    {$regex: "prod2", $options: "i"}, 
    {$regex: "prod3", $options: "i"} 
] } } 

모두 하나의 문자열에 있습니다. 유효한 JSON이 되려면 키를 모두 따옴표로 묶어야하지만 JObject.Parse은 해당 부분이 문제가되는 것처럼 들리지 않으므로 생략 할 수 있습니다.

관련 문제