LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

除了Jscript,还有其他在ASP中解析JSON的方式吗?

admin
2025年1月1日 17:1 本文热度 134

以下是另一种在 ASP 中解析 JSON 的方法,使用 VBScript 的内置函数和正则表达式来模拟部分 JSON 解析功能:

<%
'假设 JSON 数据
Dim jsonData
jsonData = '{"name":"John","age":30,"hobbies":["reading","coding","gaming"]}'

Function parseJSON(jsonStr)
    Dim obj, pair, key, value
    Set obj = CreateObject("Scripting.Dictionary")
    
    ' 分割键值对
    Dim matches
    Set regEx = New RegExp
    regEx.Pattern = """([^""]+)""\s*:\s*(.+?)(?=\s*,\s*""[^""]+""\s*:\s*|$)'
    Set matches = regEx.Execute(jsonStr)
    
    For Each match In matches
        pair = match.SubMatches
        key = pair(0)
        value = pair(1)
        
        ' 处理字符串值
        If Left(value, 1) = """' And Right(value, 1) = """ Then
            value = Mid(value, 2, Len(value) - 2)
        End If
        
        ' 处理数字值
        If IsNumeric(value) Then
            value = CDbl(value)
        End If
        
        ' 处理布尔值
        If value = "true" Then
            value = True
        ElseIf value = "false" Then
            value = False
        End If
        
        ' 处理数组
        If Left(value, 1) = "[" And Right(value, 1) = "]" Then
            value = parseArray(value)
        End If
        
        ' 处理对象
        If Left(value, 1) = "{" And Right(value, 1) = "}" Then
            value = parseJSON(value)
        End If
        
        obj.Add key, value
    Next
    
    Set parseJSON = obj
End Function

Function parseArray(arrStr)
    Dim arr, item
    Set arr = CreateObject("Scripting.Dictionary")
    Dim index = 0
    
    ' 分割数组元素
    Dim matches
    Set regEx = New RegExp
    regEx.Pattern = "\s*(.+?)\s*(?=\s*,\s*|$)"
    Set matches = regEx.Execute(arrStr)
    
    For Each match In matches
        item = match.SubMatches(0)
        
        ' 处理字符串值
        If Left(item, 1) = """' And Right(item, 1) = """ Then
            item = Mid(item, 2, Len(item) - 2)
        End If
        
        ' 处理数字值
        If IsNumeric(item) Then
            item = CDbl(item)
        End If
        
        ' 处理布尔值
        If item = "true" Then
            item = True
        ElseIf item = "false" Then
            item = False
        End If
        
        ' 处理数组
        If Left(item, 1) = "[" And Right(item, 1) = "]" Then
            item = parseArray(item)
        End If
        
        ' 处理对象
        If Left(item, 1) = "{" And Right(item, 1) = "}" Then
            item = parseJSON(item)
        End If
        
        arr.Add index, item
        index = index + 1
    Next
    
    Set parseArray = arr.Items
End Function

' 解析 JSON
Set parsedObj = parseJSON(jsonData)

' 输出结果
Response.Write("Name: " & parsedObj("name") & "<br>")
Response.Write("Age: " & parsedObj("age") & "<br>")

Dim hobby
For Each hobby In parsedObj("hobbies")
    Response.Write("Hobby: " & hobby & "<br>")
Next

Set parsedObj = Nothing
%>

​这种方法虽然比较繁琐,但在没有合适的 JSON 解析库的情况下,可以作为一种临时的解决方案。不过,对于复杂的 JSON 数据结构,可能需要进一步优化和扩展这个方法。建议在实际应用中,尽量使用成熟的 JSON 解析库来提高效率和可靠性。


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