将复杂的字符串(包含对象)转换为JSON对象?

时间:2020-02-08 14:15:59

标签: node.js mongodb

我有一个在运行时生成的字符串,取决于用户输入。当用户输入一些搜索条件时,字符串将基于该输入来创建,并且该字符串实际上是一个复杂的对象。当我尝试JSON.parse()并将其传递给mongoDB find()方法以在数据库中查找数据时,这给了我一个错误,这很好。但是我的对象不是简单的键值对,实际上我的对象是键,而值是其他对象,在这种情况下,我认为JSON.parse()方法无法将其转换为实际的JSON对象。我也尝试了一些自定义实现,但是失败了很多。

动态创建的字符串

"{ "name": { $regex: name, $options: "i" }, "code": { $regex: code, $options: "i" }, "phoneNumber": { $regex: phone, $options: "i" }, "nic": { $regex: cnic, $options: "i" }"

当我尝试JSON.parse()时,在位置$ ...处出现错误UNEXPECTED令牌错误。

错误图片

enter image description here

我们将不胜感激...预先感谢

1 个答案:

答案 0 :(得分:2)

在JSON中,对象的所有名称及其属性必须用"双引号引起来。您的字符串的名称类似$regex$options,但没有双引号字符。输入这些字符,您应该会很好。