如何将现代格式数组存入VBScript数组?求简便实现方案
现代格式数组转VBScript数组的简便方法
你提到的['Foo', 'Bar']属于类JSON格式,不用手动用split做繁琐处理,经典ASP的VBScript可以借助ScriptControl调用JScript的JSON解析能力来实现转换,这是最简便可靠的方案,能避免处理字符串内包含逗号等特殊场景的问题。
实现代码示例
Dim sc, jsonStr, vbArray Set sc = CreateObject("ScriptControl") sc.Language = "JScript" ' 原始类JSON格式字符串 jsonStr = "['Foo', 'Bar']" ' 替换单引号为双引号,转为标准JSON格式 jsonStr = Replace(jsonStr, "'", """") ' 通过JScript解析JSON并转换为VBScript数组 vbArray = sc.Eval("(" & jsonStr & ").join('|').split('|')") ' 验证输出 Dim i For i = 0 To UBound(vbArray) Response.Write vbArray(i) & "<br>" Next Set sc = Nothing
原理说明
ScriptControl允许在VBScript中调用JScript代码,利用JScript原生的JSON解析能力处理数组字符串- 先把单引号替换成双引号是为了符合标准JSON语法,确保解析不报错
- 通过
join和split的组合,将JScript数组转为VBScript可识别的数组格式
如果环境限制无法使用ScriptControl,才需要考虑手动处理:比如先匹配引号内的内容暂存,处理完外部逗号后再恢复,但这种方式需要处理各种边界情况,远不如上述方法高效。
内容的提问来源于stack exchange,提问作者Mike
相关产品推荐
相关产品推荐

