根据所决定由伟大的道格拉斯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