gpt4 book ai didi

javascript - VS2012 的 JSLint 扩展无法识别 JSON

转载 作者:行者123 更新时间:2023-11-28 02:22:04 25 4
gpt4 key购买 nike

我刚刚安装了 VS2012 的 JSLint 扩展,并且我使用的一些 JSON 设置文件出现了异常。使用默认设置会导致我的构建被自动取消,因此由于 JSLint 错误,我不得不关闭取消构建的选项。 JSON 没有理由不被识别,因为它是有效的 Javascript。我得到的异常是“预期:';'”。我检查了 JSLint 选项,但找不到解决此问题的选项,有人知道有办法吗?示例设置文件是:

{
"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"
}
]
}

谢谢!

最佳答案

根据伟大的 Douglas 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 正在运行。我已将我的答案更新为 for ,这将强制 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"
}
]
}

关于javascript - VS2012 的 JSLint 扩展无法识别 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15507295/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com