VBA-JSON解析缺逗号JSON无报错的解决及合法JSON校验方案咨询
VBA-JSON 不抛出语法错误的解决方法
这个工具默认开启了宽松解析模式,会自动兼容缺逗号、末尾多逗号这类小语法错误,所以不会主动报错。可以通过两种方式关闭容错:
- 直接修改
JsonConverter.bas源码:找到文件中UseStrictParsing的常量定义,将默认值False改为True,同时将AllowTrailingCommas配置项设为False,修改后重新导入到VBA工程即可。 - 运行时动态修改配置:不需要改源码,在调用
ParseJson方法前,添加对应配置修改代码,开启严格解析、关闭尾逗号兼容,即可在解析语法错误的JSON时触发运行时错误,你可以通过On Error语句捕获异常处理。
其他JSON合法性验证方法
VBA 工程内可用方案
- 调用JScript引擎原生校验:Windows环境下可通过
MSScriptControl组件调用JS的原生JSON解析能力校验,无需依赖第三方工具,示例代码如下:
Function CheckJsonValid(ByVal jsonStr As String) As Boolean On Error Resume Next Dim scriptCtrl As Object Set scriptCtrl = CreateObject("MSScriptControl.ScriptControl") scriptCtrl.Language = "JScript" ' 转义字符串中的双引号避免解析错误 jsonStr = Replace(jsonStr, """", """""") scriptCtrl.Eval "JSON.parse(""" & jsonStr & """)" CheckJsonValid = (Err.Number = 0) Set scriptCtrl = Nothing On Error GoTo 0 End Function
- 正则基础校验:可通过正则表达式做前置快速校验,比如检查大括号、中括号配对,键值对的引号格式等,仅能过滤明显的格式错误,复杂语法问题无法识别。
离线通用校验方案
- 代码编辑器校验:VS Code、Notepad++等常用代码编辑器都自带JSON语法检测功能,将JSON字符串粘贴到编辑器中,保存为.json格式即可直接看到语法错误位置提示。
- 批量校验可使用脚本:批量处理场景可编写简单的Python/JS脚本,调用语言内置的JSON解析方法,解析失败即为格式不合法,效率远高于逐个人工校验。
内容的提问来源于stack exchange,提问作者Hemans19
相关产品推荐
相关产品推荐

