LOGO 首页 OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 技术文档 其他文档  
 
网站管理员

经典ASP使用JScript(在服务器端运行)解析JSON数据

freeflydom
2026年9月4日 9:11 本文热度 132

:经典ASP使用JScript(在服务器端运行)解析JSON数据


在经典 ASP(VBScript)中解析 JSON 没有原生支持,但我们可以借助 JScript(在服务器端运行)来解析。

您可以嵌入 <script language="JScript" runat="server"> 代码块,利用 JavaScript 解析响应字符串,然后返回给 VBScript 使用。

关于JSON.parse报错

使用JSON.parse报错 'JSON' 未定义 的原因是您的 IIS 环境中,服务器端 JScript 引擎版本较低(比如 Windows Script Host 5.6 或更早),没有内置 JSON 全局对象。

经典 ASP 默认使用的 JScript 通常是旧版,因此我们需要换一种方式解析 JSON。

解决方案:使用 eval 解析(兼容旧版 JScript)

eval 可以将合法的 JavaScript 表达式转换为对象。只要响应字符串是标准 JSON 格式,用 eval('(' + jsonStr + ')') 即可安全解析。

vbscript
<script language="JScript" runat="server">
    function GetContentFromJson(jsonStr) {
        try {
            // 用 eval 将 JSON 字符串转为对象(注意外层括号)
            var obj = eval('(' + jsonStr + ')');
            // 提取 content
            return obj.choices[0].message.content;
        } catch(e) {
            return "解析错误:" + e.message;
        }
    }
</script>

完整的 ASP 后端调用示例

vbscript
<%
    '假设responseText来自己的服务,内容是{"choices":[{"message":{"content":"zhangsan"},"no":18},{"message":{"content":"lisi"},"no":20}]}
    content = GetContentFromJson(responseText)
    Response.Write "<pre>" & content & "</pre>" '结果zhangsan
%>

备用方案:VBScript 正则提取(不推荐,仅作参考)

如果无法使用 JScript,可以用正则表达式粗略提取 content 字段,但要注意 content 内可能包含引号、换行,容易出错,仅适用于内容格式简单的情况。

vbscript
Function ExtractContent(jsonStr)
    Dim reg, matches, match
    Set reg = New RegExp
    reg.Pattern = """content"":""(.*?)""(?=[,}])"  ' 匹配 content 值
    reg.IgnoreCase = True
    reg.Global = False
    reg.Multiline = True
    Set matches = reg.Execute(jsonStr)
    If matches.Count > 0 Then
        ExtractContent = matches(0).SubMatches(0)
    Else
        ExtractContent = ""
    End If
End Function

但此正则无法正确处理转义字符和嵌套结构,不推荐用于生产环境


最终建议

  • 优先使用 JScript 解析:代码简洁、准确,能处理任意复杂 JSON。

如果您的 ASP 环境禁用了 JScript 或不允许服务器端脚本混合语言,您也可以将整个响应字符串返回给客户端,由浏览器端的 JavaScript 解析(即方案一的前端处理)。

⚠️ 关于 eval 的安全风险

eval 会执行任意 JavaScript 代码,如果 responseText 来自不可信来源,可能引发注入攻击。但您的场景中,responseText 来自您自己的服务,内容是可信的,因此风险可控。




该文章在 2026/9/4 9:36:44 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2026 ClickSun All Rights Reserved  粤ICP备13012886号-1  粤公网安备44030602007207号