在 ASP 中處理復雜的 JSON 數據結構可以考慮以下幾種方法:
方法一:使用第三方 JSON 解析庫
如果服務器環境允許,可以引入第三方的 JSON 解析庫。比如可以使用 JSON for VBScript。
安裝后,使用示例如下:
<%
' 假設 JSON 數據
Dim jsonData
jsonData = '{"person":{"name":"John","age":30,"address":{"city":"New York","street":"Main St"}},"hobbies":["reading","coding","gaming"]}'
' 引入 JSON 解析庫
Set jsonObject = JSON.parse(jsonData)
' 輸出結果
Response.Write("Name: " & jsonObject.person.name & "<br>")
Response.Write("Age: " & jsonObject.person.age & "<br>")
Response.Write("City: " & jsonObject.person.address.city & "<br>")
Dim hobby
For Each hobby In jsonObject.hobbies
Response.Write("Hobby: " & hobby & "<br>")
Next
%>
方法二:使用遞歸函數處理嵌套結構
如果不能使用第三方庫,可以使用自定義的函數來處理復雜的 JSON 數據結構。例如:
<%
' 假設 JSON 數據
Dim jsonData
jsonData = '{"person":{"name":"John","age":30,"address":{"city":"New York","street":"Main St"}},"hobbies":["reading","coding","gaming"]}'
Function processJSON(obj)
Dim key, value
For Each key In obj
Set value = obj(key)
If IsObject(value) Then
' 如果是對象,遞歸處理
Response.Write(key & " is an object:<br>")
processJSON(value)
ElseIf IsArray(value) Then
' 如果是數組,遍歷處理
Response.Write(key & " is an array:<br>")
Dim item
For Each item In value
Response.Write(" - " & item & "<br>")
Next
Else
' 如果是普通值,直接輸出
Response.Write(key & ": " & value & "<br>")
End If
Next
End Function
Set jsonObject = Server.CreateObject("ScriptControl")
jsonObject.Language = "JScript"
Set parsedObj = jsonObject.Eval("(" + jsonData + ")")
processJSON(parsedObj)
%>
?這種方法通過遞歸函數來處理嵌套的對象和數組,以適應復雜的 JSON 數據結構。但這種方法相對比較繁瑣,并且可能在處理非常復雜的結構時效率不高。
該文章在 2025/1/1 17:00:00 編輯過