标签归档:json

ASP也能处理JSON数据

ASP也能处理JSON数据?呵呵,刚才在Pjblog论坛上看到一个兄弟写的文章,没有测试,不过理论上一定是可以的~ 太晚了,不测试了。
以前处理JSON太麻烦了,输出还好说,循环一下就可以了,解析真的很头疼。所以遇到 这种问题API问题,一般都是XML处理,不太喜欢,很麻烦。

<%
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 strTest
strTest = "{name:""alonely"", age:24, email:[""ycplxl1314@163.com"",""ycplxl1314@gmail.com""], family:{parents:[""父亲"",""母亲""],toString:function(){return ""家庭成员"";}}}"
Dim objTest
Call 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
%>

公司的网站管理系统完成。

      因为是两期完成,所有界面有所不同。

1

详情页面,可以添加站点信息。修改网站状态,添加客户需求。如果已完成网站,添加完需求,自动保存到修改(验收后),否则保存到修改(开发中)。

2

添加修改业务详情。

3

另外,还有一个远程调用接口(API),通过JSON传递信息。PHP写的。

< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
<title>猫七导航</title>
<base target="_blank" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<style type="text/css">
html{background:#666}
h1{margin:0px;text-align:center;font-size:28px;padding:5px 10px;color:#C00}
h2{margin:0px;font-size:16px;padding:5px 10px;color:#060}
body{width:938px;margin:auto;border:solid 5px #000;background:#EEE;padding:20px;margin-top:10px;}
.dh a{margin:0px 5px;text-decoration:none;font-size:12px;color:#000}
.dh a:hover{text-decoration:underline}
dl{width:300px;height:200px;overflow:hidden;float:left;border:solid 1px #000;margin:5px;}
dt{margin:0px;color:#FFF;background:#060;padding:5px;}
/*录入完毕|制作中|等待客户确认|客户确认|修改(开发中)|修改(验收后)*/
.site_0{background:#0000CC;}
.site_1{background:#CCCC00;}
.site_2{background:#00CCCC;}
.site_3{background:#00CC00;}
.site_4{background:#FF0000;}
.site_5{background:#CC0000;}
.site_all{background:#666666}
dt a{color:#FFF;text-decoration:none;font-weight:800;font-size:18px;}
dd{margin:0px;font-size:12px;color:#000;padding:3px;background:#CCC;height:168px;overflow:auto;}
.ColorBox div{padding:5px;margin:5px;float:left;border:solid 1px #000;font-weight:800}
.ColorBox div a{color:#FFF;text-decoration:none}
</style>
</head><body>
< ?php
	$QUERY=isset($_GET['QU'])?$_GET['QU']:"";
	$v=$_SERVER['PATH_INFO'];
	$server="1.1.1.1";
	$t="";
	$htmlbody=0;
 
	$fp=fsockopen($server,80,$errstr,$errno);
	if (!$fp) { 
		echo "$errstr ($errno)<br />\n"; 
	}else{
		if(isset($v)){
			$v=str_replace("/","?",$v);
			$v=str_replace(":","=",$v);
			$v=str_replace("_","=",$v);
			$out = "GET /api/site?".$v." HTTP/1.1\r\n";
		}else{
			$out = "GET /api/site HTTP/1.1\r\n";
		}
		$out .= "Host: test.com\r\n"; 
		$out .= "Connection: Close\r\n\r\n"; 
		fwrite($fp, $out);
		while (!feof($fp)) { 
			$l=fgets($fp, 128);
			if($htmlbody==1){
				$t.=$l;
			}else{
				if(strlen($l)==2)$htmlbody=1;
			}
		}
		fclose($fp); 
	}
 
	$t=mb_convert_encoding($t,"UTF-8","GBK");
	$t=str_replace("\r\n","",$t);
	$t=str_replace("\r","",$t);
	$t=str_replace("\n","",$t);
	$siteArr=json_decode($t,1);
 
	#读取数据
	echo '<h1>企业网站索引</h1><h2>简单导航</h2><div class="dh"><a href="/old.php">老数据</a>';
	foreach($siteArr as $LinkKey=>$LinkItem){
		echo '<a href="'.$LinkItem['url'].'" taregt="_blank">'.$LinkItem['name'].'</a>';
	}
?>
	<a href="/cms">CMS选择</a></div><hr /><h2>概述导航</h2>
	<div class="ColorBox">
		<div class="site_all"><a href="/" target="_self">所有未完成</a></div>
		<div class="site_0"><a href="./status_0" target="_self">录入完毕</a></div>
		<div class="site_1"><a href="./status_1" target="_self">制作中</a></div>
		<div class="site_2"><a href="./status_2" target="_self">等待客户确认</a></div>
		<div class="site_3"><a href="./status_3" target="_self">客户确认</a></div>
		<div class="site_4"><a href="./status_4" target="_self">修改(开发中)</a></div>
		<div class="site_5"><a href="./status_5" target="_self">修改(验收后)</a></div>
		<div class="site_all"><a href="/tools/" target="_self">小工具列表</a></div>
	</div>
	<div style="clear:both"></div>
< ?php
	foreach($siteArr as $LinkKey=>$LinkItem){
		echo '<dl><dt class="site_'.$LinkItem['status'].'"><a href="'.$LinkItem['url'].'" taregt="_blank">'.$LinkItem['name'].'</a></dt><dd>'.$LinkItem['info'].'</dd></dl>';
	}
?>
	<div style="clear:both"></div>
</body>

访问路径:
http://192.168.99.29/(所有未完成)
http://192.168.99.29/index.php/status_0(录入完毕)