今天弄asp处理json对象,本来找了一个使用MSScriptControl.ScriptControl的例子,由于64位win7系统的原因,一直没有测试成功,不过只要是32位系统,应该没有问题。后来需要这个功能,考虑换系统的麻烦,最后换了一个写法: 这里介绍一条记录的json和多条记录的json的asp处理方法
一条记录的json对象的处理方法: view sourceprint?01 <script language="jscript" runat="server">
02 function getjson(str){
03 try{
04 eval("var jsonStr = (" + str + ")");
05 }catch(ex){
06 var jsonStr = null;
07 }
08 return jsonStr;
09 }
10 </script>
11 <%
12 set obj = getjson("{name:'anlige'}")
13 response.write obj.name
14 %>
(鼠标移到代码上去,在代码的顶部会出现四个图标,第一个是查看源代码,第二个是复制代码,第三个是打印代码,第四个是帮助)
多条记录的Json对象的处理方法:
view sourceprint?01 <script language="jscript" runat="server">
02 Array.prototype.get = function(i)
03 {
04 return this[i];
05 };
06 function getjson(str){
07 try{
08 eval("var jsonStr = (" + str + ")");
09 }catch(ex){
10 var jsonStr = null;
11 }
12 return jsonStr;
13 }
14 </script>
15 <%
16 str="{""postPrice"":[{""Productid"":1,""Productname"": ""手机"",""Price"":25.5,""num"": 1000,""url"":""http://www.baidu.com""},{""Productid"":2,""Productname"": ""相机"",""Price"":75,""num"": 2000,""url"":""http://www.aspbc.com""}]}"
17 str=right(str,len(str)-instr(str,"[")+1)
18 str=left(str,InstrRev(str,"]"))
19 dim obj
20 set obj = getjson(str)
21 str0=""
22 for i=0 to obj.length-1
23 str0=str0&"ID="&obj.get(i)。productid&"<br>"
24 str0=str0&"ProductName="&obj.get(i)。Productname&"<br>"
25 str0=str0&"Price="&obj.get(i)。Price&"元<br>"
26 str0=str0&"num="&obj.get(i)。num&"台<br>"
27 str0=str0&"url="&obj.get(i)。url&"<br><br>"
28 next
29 response.write str0
30
31 %>
发表回复