不积跬步,无以至千里;不积小流,无以成江海。

Dean's blog

  • Join Us on Facebook!
  • Follow Us on Twitter!
  • LinkedIn
  • Subcribe to Our RSS Feed

ASP读取JSON数据

具体如下:

<%
	
	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)这样,是会报错了。

不允许评论
粤ICP备17049187号-1