日期:2009-12-15  浏览次数:20978 次

JSON( Object Notation) 我想这个名字大家已经不陌生了,它是一种轻量级的数据交换格式 , 是由服务直接生成语句,客户端获取后直接用 eval 方法来获得这个对象,这样就可以省去解析 XML 解析带来的性能问题和兼容性问题,而且对于来说非常容易使用,可以方便的通过遍历数组以及访问对象属性来获取数据,其可读性也不错,基本具备了结构化数据的性质。不得不说是一个很好的办法,例如 google maps 就没有采用 XML 传递数据,而是采用了 JSON 方案。

这里我给大家举一个 ASP 调用 Json 的例子,起到一个抛砖引玉的作用吧 .....

以下是 tset.asp 代码片段

<!--#include file="jsonParse.asp"-->
<%
Dim strTest
strTest = "{name:""alonely"", age:24, email:[""ycplxl1314@163.com"",""ycplxl1314@gmail.com""], family:{parents:[""父亲"",""母亲""],toString:function(){return ""家庭成员"";}}}"
Dim objTest
InitScriptControl
Set objTest = getJSONObject( strTest )
%>
<%=objTest.name%>的邮件地址是<%=sc4Json.Eval("jsonObject.email[0]")%><BR>
共有邮件地址<%=objTest.email.length%>个<BR>
<%
Dim father
getJSArrayItem father, objTest.family.parents, 0
Response.Write father
%>

以下是 jsonParse.asp 代码片段

<%
Option Explicit
Dim sc4Json
Sub InitScriptControl
 Set sc4Json = Server.CreateObject("MSScriptControl.ScriptControl")
 sc4Json.Language = ""
 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
 End If
 objDest = sc4Json.CodeObject.itemTemp
End Sub
%>