ASP如何来解析JSON,,可以用JS

发布网友

我来回答

1个回答

热心网友

<%
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
%>

追问我直接运行你这个,提示错误,,,对象不支持此属性或方法: 'qqq'

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com