簡體   English   中英

在JavaScript中解析字符串json會引發意外令牌

[英]Parsing string json in javascript throws Unexpected token

var filter1 = " { where:{ businessName:{ $like:'%A'} ,'userId': { $gt: 0} }, limit: 1 }"

我想像這樣JSON傳遞它

  var filter =  { where:{ businessName:{ $like:'%A'} ,'userId': { $gt: 0} }, limit: 1 } 

我這樣做是為了使其像JSON示例一樣。

JSON.parse(filter)

但它引發以下異常:

SyntaxError:JSON中位置3處的意外令牌w

您的JSON無效。 對所有鍵和值使用""numbersbools值除外

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); 

這不是有效的JSON字符串。 它更多是用引號引起來的JavaScript對象文字。

在JSON標准中,所有鍵都應使用引號引起來,因此JSON如下所示:

"{"where":{"businessName":{"$like":"%A"},"userId":{"$gt":0}},"limit":1}"

由於您的字符串只是一個用引號引起來的JavaScript對象,因此您只需刪除引號就可以得出正確的JSON字符串:

var filter1 = { where:{ businessName:{ $like:'%A'} ,'userId': { $gt: 0} }, limit: 1 }

並通過JSON.stringify運行它:

JSON.stringify(filter1);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM