[英]How can I specify dynamic value in object literal assignment?
這是通過JSLint運行代碼后得到的:
預期為“:”,而不是“ +”。 '“ Book”:“'+ bookname +'”'第3行第23列
意外的尾隨空間。 '“ Book”:“'+ bookname +'”'
我想在JSON字符串中指定查找結果,如果它們在“ Book”列中包含“ bookid”的值(請參閱下面的1-4行)。
我了解語法有誤。 直到我決定需要使用本地存儲中的值之前,它的工作都很棒。 我不確定如何在這種查詢中正確調用常規變量。 怎么了?
var bookname = localStorage.getItem('bookid');
var whereObject = {
"$and": [{
'"Book":"'+bookname + '"'
}
}, {
"$or": [{
"calf_id": {
"$regex": "^" + value,
"$options": "i"
}
}, {
"cow_id": {
"$regex": "^" + value,
"$options": "i"
}
}, {
"Sire": {
"$regex": "^" + value,
"$options": "i"
}
}, {
"Color": {
"$regex": "^" + value,
"$options": "i"
}
}]
}]
};
return JSON.stringify(whereObject);
value
是搜索欄中的值。
我嘗試使用給我的建議來更改它,但隨后它會產生更多警告,類似於我已有的警告。
我基本上需要知道在查詢中使用先前定義的變量的正確方法。 我不知道正確的語法,只能找不到任何東西
'"Book":"'+bookname + '"'
為什么使用'
? 我不確定為什么要這么做。
在json中,您應該在:
charachter之前結束字符串。 然后在:
您輸入Book
的值。
"KEY":"VALUE"
如果Book
值是一個字符串:
"Book" : "hello this is string"
如果Book
的值是一個變量:
"Book": bookname
如果您想讓Book
擁有bookname
變量的值但用引號引起來,則可以
"Book": "'" + bookname + "'"
如果仔細查看並計算json中{和}的數目,您會發現該數目甚至不相等! 這意味着您在匹配這些錯誤。 這是沒有語法錯誤的有效json:
{
"$and": [
{
"Book":"bookname"
},
{
"$or": [
{"calf_id": {"$regex":"^" + value,"$options": "i"}},
{"cow_id": {"$regex":"^" + value,"$options": "i"}},
{"Sire": {"$regex":"^" + value,"$options": "i"}},
{"Color": {"$regex":"^" + value,"$options": "i"}}
]
}
]
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.