具体如下:
<%
Dim sc4Json
Sub InitScriptControl
Set sc4Json = Server.CreateObject("MSScriptControl.ScriptControl")
sc4Json.Language = "JavaScript"
sc4Json.AddCode "var itemTemp=null;function getJSArray(arr, index){itemTemp=arr[index];}"
End Sub
Function getJSONObject(strJSON)
sc4Json.AddCode "var jsonObject = " & strJSON
Set getJSONObject = sc4Json.CodeObject.jsonObject
End Function
Sub getJSArrayItem(objDest,objJSArray,index)
On Error Resume Next
sc4Json.Run "getJSArray",objJSArray, index
Set objDest = sc4Json.CodeObject.itemTemp
If Err.number=0 Then Exit Sub
objDest = sc4Json.CodeObject.itemTemp
End Sub
dim json
json = "{""Data"":""499214d492534626ab814ab17898193a"",""Levels"":[1,2,3,4], ""Marks"":{ ""Flag"":1 }}"
Dim objTest
Call InitScriptControl
Set objTest = getJSONObject(json)
Response.Write "Data:"&objTest.Data&"<br />"
dim level1
getJSArrayItem level1, objTest.Levels, 0
Response.Write "Level 1:"&level1&"<br />"
Response.Write "Marks.Flag:"&objTest.Marks.Flag&"<br />"
%>
如上代码所示:
1、首先需要调用getJSONObject函数获取对象;
2、如果是简单属性或子对象的属性,那么直接调用即可;
3、如果是数组,则需要调用getJSArrayItem来获取数组元素,如果直接调用objTest.Levels(0)这样,是会报错了。