当有正则表达式时,JSON解析失败

时间:2014-09-26 21:03:14

标签: json mongodb json.net

我正在尝试将json中的mongodb查询解析为字典,并且JObject.Parse会抛出异常。

JSON字符串如下所示

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

例外是消息

  

解析评论时出错。预期:*,得到了p。路径'产品。$ in',第1行,第50位。

2 个答案:

答案 0 :(得分:1)

JSON不支持正则表达式,但您可以更改JSON字符串以使用$regex查询运算符语法:

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

当然,所有这些都在一个字符串中。要成为有效的JSON,所有键都需要引用,但JObject.Parse可能允许它们被省略,因为它听起来不像那部分给你带来麻烦。

答案 1 :(得分:0)

看起来你并不是说JSON,而是说MongoDB,不是吗?

对于MongoDB查询,您需要这样做:

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