post 给asp页面的json数据,asp里面怎么获取啊?
传统post过来的数据,比如
id=1&name=test 什么的很好获取
比如用request("id")就可以得到
现在post过来的是json格式的数据,
比如
[
{
"id": "1",
"Name": "test88"
},
{
"id": "2",
"Name": "test99"
}
]
asp页面如何获得这些数据呢?
[解决办法]
自个儿把json解析一下
[解决办法]
v=cstr(request.form)
response.wrrie v
[解决办法]
要借助js
方法1
<script language="jscript" runat="server">
var obj = eval("(" + json +")");
// 在此处处理obj 把它放到普通变量或字典对象中
</script>
<script language="vbscript" runat="server">
此处直接调用上述变量
</script>
方法2
复杂点,找一个能解析js 的 COM组件
sJSPath = sPrjPath & "web\js\jsonparser.js"
Set oFS = CreateObject("Scripting.FileSystemObject")
If oFS.FileExists(sJSPath) Then
Set oFile = oFS.OpenTextFile(sJSPath, 1, False, 0)
sJSText = oFile.ReadAll()
oFile.Close
Set oFile = Nothing
End If
Set oHost = CreateObject("newObjects.Scphost.ScpMan2")
With oHost
.LoadEngine "JScript"
.AddText sJSText
.Run()
Set oDic = .script.getDic(sJSON)
End With
Set oHost = Nothing
jsonparser.js
function getDic(s){
var obj = eval("(" + s + ")");
var dic = new ActiveXObject("newobjects.utilctls.VarDictionary");
with(dic){
allowUnnamedValues = true;
allowDuplicateNames = true;
}
for(item in obj){
parse(item, obj[item], false, dic);
}
return dic;
}
function parse(sName, sValue, bIsArray, oDic){
if(sValue==null) sValue = "";
var t = getType(sValue);
switch(t){
case "array":
var oSubDic = oDic.CreateNew();
for(n in sValue){
parse("", sValue[n], true, oSubDic);
}
oDic.Set(sName, oSubDic);
break;
case "object":
var oSubDic = oDic.CreateNew();
for(n in sValue){
parse(n, sValue[n], false, oSubDic);
}
oDic.Set(sName, oSubDic);
break;
break;
case "number":
case "string":
case "boolean":
if(bIsArray) oDic.Add("", sValue);
else oDic.Set(sName, sValue);
break;
}
}
function getType(obj){
var t = typeof obj;
switch(t){
case "object": var s = obj.constructor;
if(/\bArray\(\) \{/.test(s)) return "array";
else return "object";
break;
default: return t;
}
}