【发布时间】:2018-12-21 12:24:21
【问题描述】:
我想将字符串转换为 json 对象,但无法转换。因为我使用的是带有特殊符号的字符串。我必须从 JSON 文件中读取查询。这是我使用的名为 functions.json 的文件。
[
{
"function":"Promo1",
"query1": "{%24and:[{\"createdOn\":{%24lte:\"1712086400000\"}},{\"country\": \"India\"},{\"Type\": \"App\"}]}",
"query2": "{\"country\": \"India\"}"
}
]
在这个文件中有很多对象。我必须先读取文件然后我会动态获取函数名称我必须从该对象获取适当的函数查询。所以考虑我想要 Promo1 查询从那个对象。我能够得到这个 query1 字段值。之后我将 unescape query1 字符串中的特殊符号,以便我将 $ 而不是 %24。我正在使用此代码来转义字符串 var q1 = unescape(str_arry[0].query1); 。
在 unescape q1 持有一个字符串值 {$and:[{"createdOn":{$lte:"1712086400000"}},{"country": "India"},{"Type": "App"}]} 之后。我正在使用将此字符串转换为 Object
{$and:[{"createdOn":{$lte:"1712086400000"}},{"country": "India"},{"Type": "App"}]}
由于 $ 符号,我无法使用 JSON.parse 进行解析。我收到此错误
SyntaxError: JSON 中位置 1 的意外标记 $
谁能帮我解决这个问题?
【问题讨论】:
-
那不是 JSON。最好修复任何发送损坏的输入
-
是的,这是一个猫鼬查询。它是字符串类型
-
这不是有效的 JSON。您可以从使其成为有效的 JSON 开始。问题不是
$,而是缺少引号。 -
我同意这不是一个有效的 JSON 我的问题是如何将它转换为 JSON 对象?
-
考虑解释你的情况。如果你想用 JSON.parse 解析它,通常你不应该有这样的字符串。
标签: javascript node.js mongoose