根據所決定由偉大的道格拉斯Crockford的JSLint的的額外的嚴格的規定,所有的表情應該在結尾加上分號。 JSON對象的聲明是一個表達式 - 在末尾添加一個分號,你應該是金色的。雖然JavaScript本身並不強迫你用分號結束每個表達式,但如果你不這樣做,它會在一些奇怪的情況下導致編譯問題,所以JSLint強迫你這樣做。您應該認識到,通過使用JSLint,您同意使用更嚴格的JavaScript子集,然後根據規範指定的語言。但是,折衷的是,這個子集不太容易出錯,因爲這套完整的語言並因此更安全地使用。
{
"SharePath": "\\\\172.26.168.60\\main\\Temp\\Webclient",
"LocalFilePath": "C:\\\\Builds\\WebClient",
"BuildCount": "10",
"AppVersions": [
{
"VersionName": "hotfix",
"BuildPath": "\\\\10.18.0.53\\Builds\\WebClient_hotfix"
},
{
"VersionName": "main",
"BuildPath": "\\\\10.18.0.53\\Builds\\WebClient_main"
},
{
"VersionName": "master",
"BuildPath": "\\\\10.18.0.53\\Builds\\WebClient_master"
}
]
}; // <--- ';' HERE
,網上的JSLint似乎這裏傳遞對象,而VS2012的JSLint沒有的原因是,在JSLint的在線是治療對象爲JSON對象,只檢查對象的一部分。您正在使用的VS2012將JSON文件視爲完整的JavaScript文件,並將該JSON對象視爲更大JS表達式的一部分(因爲所有JSON對象最終都必須),因此它正在檢查更多事情,然後聯機JSLint編輯器。 (這是檢查表達式的語法,在線JSLint不是。簡單地說,JSLint在線工具默認爲一個簡單模式,然後VS2012正在運行。我已經更新了答案,這將強制onlint JSLint運行完整JS表達檢查。嘗試粘貼到onlie工具這一點,看看會發生什麼。(提示JSLint的心不是高興)
var test2 = "Hey JSLint Im a JS file, not a JSON object danm it!";
{
"SharePath" : "\\\\172.26.168.60\\main\\Temp\\Webclient",
"LocalFilePath" : "C:\\\\Builds\\WebClient",
"BuildCount" : "10",
"AppVersions" : [
{
"VersionName": "hotfix",
"BuildPath": "\\\\10.18.0.53\\Builds\\WebClient_hotfix"
},
{
"VersionName": "main",
"BuildPath": "\\\\10.18.0.53\\Builds\\WebClient_main"
},
{
"VersionName": "master",
"BuildPath": "\\\\10.18.0.53\\Builds\\WebClient_master"
}
]
}
謝謝!擴展仍然不承認它,但是。另外,如果我貼JSON原樣是進入JSLint.com它說它是完美的 – PlantationGator 2013-03-19 18:26:50
更新我的答案,解釋你爲什麼看到這個 – gbtimmon 2013-03-19 18:40:12
再次感謝,這是有道理的我猜JSLint的製造商不喜歡JS文件的想法,其中包含只有一個獨立的對象,這是我(AB)使用它。基本上我已經取代app.config機智h settings.js,因爲創建自定義對象非常簡單,並且如果來自JSON(但是這是另一個線程的主題),則可以進行解析。 – PlantationGator 2013-03-19 19:30:26