Dim?scriptCtrl
Function?parseJSON(json)
If?Not?IsObject(scriptCtrl)?Then
Set?scriptCtrl=Server.CreateObject("MSScriptControl.ScriptControl") scriptCtrl.Language="JScript" scriptCtrl.AddCode?"Array.prototype.get=function(x){return?this[x];};var?result=null;"End?If
scriptCtrl.ExecuteStatement?"result="?&?json?&?";"
Set?parseJSON=scriptCtrl.CodeObject.result
End?Function
Function?chkJSON(s)
scriptCtrl.ExecuteStatement?"var?sxcz=(result&&typeof?result=='object')?('"?&?s?&?"'?in?result):false;"
chkJSON=scriptCtrl.CodeObject.sxcz
End?Function
%>
第壹個函數parseJSON是用來把JSON字串解析為對象的,用法如下:
<%JSON="{xxx:111,yyy:{zzz:222,aaa:'abc',zzz:'qwe'},qqq:[{sss:123,rrr:456},{sss:333,rrr:678}]}"
Set?objJSON=parseJSON(JSON)
Response.Write?objJSON.xxx?&?"<br>"
Response.Write?objJSON.yyy.aaa?&?"<br>"
Response.Write?objJSON.qqq(0).sss?&?"<br>"
%>
第二個函數chkJSON是用來檢測某個屬性在JSON中是否存在的。由於VBScript與JScript的對象存在差別,在VBScript中如果直接使用對象中不存在的屬性是會出錯的(JScript則不會),因此如果妳對JSON中某個屬性是否存在不敢肯定,最好先用這個函數檢測壹下。註意,必須在使用過第壹個函數的情況下才能使用這個函數!用法如下:
<%If?chkJSON("mmm")?Then?Response.Write?objJSON.mmm
%>