lt;
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="?amp;?json?amp;?";"
Set?parseJSON= scriptCtrl.CodeObject.result
End?Function
Function?chkJSON(s)
scriptCtrl.ExecuteStatement?"var?sxcz=(resultamp;amp;typeof ?result=='object')?('"?amp;?s?amp;?"'?in?result):false;"
chkJSON=scriptCtrl.CodeObject.sxcz
End?Function
gt;
첫 번째 함수인 parseJSON은 JSON 문자열을 객체로 구문 분석하는 데 사용됩니다. 사용법은 다음과 같습니다. lt;
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?amp;?"lt;brgt;"
응답 .Write?objJSON.yyy.aaa?amp;?"lt;brgt;"
Response.Write?objJSON.qqq(0).sss?amp;?"lt;brgt;"
Response.Write?objJSON.qqq(0).sss?amp;?"lt;brgt;"
p>gt;
두 번째 함수 chkJSON이 사용됩니다. JSON에 특정 속성이 존재하는지 감지합니다. VBScript와 JScript의 개체 차이로 인해 개체에 존재하지 않는 속성을 VBScript에서 직접 사용하면 오류가 발생합니다(JScript에서는 발생하지 않음). 따라서 JSON에 특정 속성이 있는지 확실하지 않은 경우. 존재하는 경우 먼저 이 기능을 사용하여 확인하는 것이 가장 좋습니다. 이 기능은 첫 번째 기능을 사용한 후에만 사용할 수 있습니다! 사용법은 다음과 같습니다:lt;
If?chkJSON("mmm")?Then?Response.Write?objJSON.mmm
gt;