如何使用Excel VBA校验未知结构的字符串是否为合法JSON格式
Excel VBA 校验JSON格式合法性的实现方法
你无需提前知晓待校验JSON的键值结构、嵌套规则等内容,只需通过VBA调用JSON解析器尝试解析目标字符串即可完成校验:解析无报错则为合法JSON,否则为非法格式。
方案1:32位Office适配方案(无需额外依赖)
直接调用系统内置的ScriptControl组件实现解析,代码如下:
Function IsValidJson(jsonStr As String) As Boolean On Error Resume Next Dim sc As Object Set sc = CreateObject("ScriptControl") sc.Language = "JScript" ' 转义字符串中的单引号避免解析错误 sc.Eval "JSON.parse('" & Replace(jsonStr, "'", "\'") & "')" IsValidJson = (Err.Number = 0) Err.Clear Set sc = Nothing End Function
方案2:32/64位Office通用适配方案
兼容全版本Office,基于HTML文件内置的JS解析器实现,代码如下:
Function IsValidJson_Universal(jsonStr As String) As Boolean On Error Resume Next Dim htmlObj As Object Set htmlObj = CreateObject("htmlfile") ' 注入JSON校验逻辑 htmlObj.parentWindow.execScript "function validateJson(str) { try { JSON.parse(str); return true; } catch(err) { return false; } }", "JScript" IsValidJson_Universal = htmlObj.parentWindow.validateJson(jsonStr) Err.Clear Set htmlObj = Nothing End Function
使用说明
- 函数传入参数为待校验的JSON字符串,返回值为布尔类型:
True代表格式合法,False代表格式错误 - 校验逻辑完全不依赖JSON内部的键值定义、嵌套层级,仅校验语法是否符合JSON通用规范
- 你提供的样例JSON经上述函数校验结果为合法格式
内容的提问来源于stack exchange,提问作者Hemans19
相关产品推荐
相关产品推荐

