簡體   English   中英

如何在對象文字分配中指定動態值?

[英]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.

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