[英]Parsing string json in javascript throws Unexpected token
var filter1 = " { where:{ businessName:{ $like:'%A'} ,'userId': { $gt: 0} }, limit: 1 }"
I want to make pass it like this JSON
我想像这样JSON
传递它
var filter = { where:{ businessName:{ $like:'%A'} ,'userId': { $gt: 0} }, limit: 1 }
I did this to make it like JSON example. 我这样做是为了使其像JSON示例一样。
JSON.parse(filter)
But it throws the following exception: 但它引发以下异常:
SyntaxError: Unexpected token w in JSON at position 3 SyntaxError:JSON中位置3处的意外令牌w
Your JSON
is not valid. 您的JSON
无效。 Use ""
with all keys and for values, except numbers
and bools
对所有键和值使用""
, numbers
和bools
值除外
var filter1 = '{ "where": { "businessName" :{ "$like":"%A"} ,"userId": { "$gt": 0} }, "limit": 1 }'
var filter1 = '{ "where": { "businessName" :{ "$like":"%A"} ,"userId": { "$gt": 0} }, "limit": 1 }'; var filter = JSON.parse(filter1); console.log(filter);
It's not valid JSON string. 这不是有效的JSON字符串。 It's more a JavaScript object literal wrapped in quotes. 它更多是用引号引起来的JavaScript对象文字。
In JSON standard all keys should be wrapped in quotes, so here is how your JSON would look like: 在JSON标准中,所有键都应使用引号引起来,因此JSON如下所示:
"{"where":{"businessName":{"$like":"%A"},"userId":{"$gt":0}},"limit":1}"
Since your string is simply a JavaScript object wrapped in quotes, you can arrive at the correct JSON string by simply removing quotes: 由于您的字符串只是一个用引号引起来的JavaScript对象,因此您只需删除引号就可以得出正确的JSON字符串:
var filter1 = { where:{ businessName:{ $like:'%A'} ,'userId': { $gt: 0} }, limit: 1 }
and running it through JSON.stringify
: 并通过JSON.stringify
运行它:
JSON.stringify(filter1);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.