本文目录一览:
ASP读取JSON数组的问题。求解啊!!!!
script language="JScript" runat="Server"
function ToObject(json) {
var o;
eval("o=" + json);
return o;
}
function toArray(s){
var dic = Server.CreateObject("Scripting.Dictionary")
eval("var a=" + json);
for(var i=0;ia.length;i++){
var obj = Server.CreateObject("Scripting.Dictionary")
for(x in a[i]) obj.Add(x,a[i][x])
dic.Add(i, obj);
}
return dic
}
/script
%
json = "[{""date"":""周四 08月07日 (实时:2)"",""weather"":""晴"",""wind"":""微风"",""temperature"":""21""},{""date"":""周五"",""weather"":""多云"",""wind"":""微风"",""temperature"":""31 ~ 22""},{""date"":""周六"",""weather"":""多云转阴"",""wind"":""微风"",""temperature"":""30 ~ 22""},{""date"":""周日"",""weather"":""阴转晴"",""wind"":""微风"",""temperature"":""31 ~ 22""}]"
Set ob = toArray(json)
For i=0 To ob.Count-1
Response.Write ob(i)("date") " br/"
next
Set ob = Nothing
%
注意JSON字符串前后的 [ ]
asp 如何请求 json
传统的ASP与ASP之间post提交json可以用:
json=cstr(request.form)
来获取得到的json代码
2
实际上,如果是java或php提交过来的话,用request.form可能得到的就是空值,最稳妥的办法是根据二进制流得到数据,具体操作如下:
3
2个页面,第一个页面假设为:funtion.asp
代码如下:
%
function bytes2bstr(vin)
dim bytesstream,stringreturn
set bytesstream = server.CreateObject("adodb.stream")
bytesstream.type = 2
bytesstream.open
bytesstream.writeText vin
bytesstream.position = 0
bytesstream.charset = "utf-8"'或者gb2312
bytesstream.position = 2
stringreturn = bytesstream.readtext
bytesstream.close
set bytesstream = nothing
bytes2bstr = stringreturn
end function
%
4
第二个页面,假设为demo.asp,代码如下:
!--#include file="funtion.asp"--
%
getpostjson=Request.TotalBytes '得到字节数
if getpostjson=0 then
response.Write("json null")
response.End()
end if
readjson=Request.BinaryRead(getpostjson) '二进制方式来读取客户端使用POST传送方法所传递的数据
json = bytes2bstr(readjson) '二进制转化
response.write(json)
%
5
字符串解析:
Set jsonobj=getJSONObject(json)
json数据请问怎么遍历
如果是js中遍历使用
var anObject = {one:1,two:2,three:3};//对json数组each
$.each(anObject,function(name,value) {
});
如果是Java代码直接用for循环就行了,说白了json也是数组的一种,json对象和json数组都可以
//遍历json数组
String json1 = "{data:[{name:'Wallace'},{name:'Grommit'}]}";
jsonObjSplit = new JSONObject(json1);
JSONArray ja = jsonObjSplit.getJSONArray("data");
for (int i = 0; i ja.length(); i++) {JSONObject jo = (JSONObject) ja.get(i);System.out.println(jo.get("name"));}
//JSONObject遍历json对象
String json2 = "{name:'Wallace',age:15}";
jsonObj = new JSONObject(json2);
for (Iterator iter = jsonObj.keys(); iter.hasNext();) {String key = (String)iter.next();System.out.println(jsonObj .getString(Key));}
ASP 读取json后如何 写入数据库
ASP 获取JSON 数据:script language="JScript" runat="Server"
function toObject(json) {
eval("var o=" + json);
return o;
}
/script
%
Dim json
json ="{""px_name"":""第二届"",""px_ksjs"":""2014-03-11"",""px_kcfl"":""培训课程""}"
Set json = toObject(json)
Response.Write json.px_name " br/"
Response.Write json.px_ksjs " br/"
Response.Write json.px_kcfl " br/"
Set json = Nothing
%
2.写入数据库
OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|db1.mdb";
OleDbCommand comm = new OleDbCommand();
conn.Open();
comm.Connection = conn;
comm.CommandText = "Insert Into [Time] ([begin],[over],[name]) Values (@begin,@over,@name)";
comm.Parameters.AddWithValue("@begin", a);
comm.Parameters.AddWithValue("@over", b);
comm.Parameters.AddWithValue("@name", c);
comm.ExecuteNonQuery();
conn.Close();
注意:
1、以上代码是以access数据为例。
2、如果表里面有其他不能为空的字段存在,需要给他们提供值,自动增加的字段除外。
3、db1.mdb文件的只读属性去掉,在文件的属性-安全性里面,添加 everyone帐号和NETWORK Service 帐号可修改权限。
问高手:asp如何处理json字符串
asp的默认脚本语言是VBScript,但实际上它也是支持JScript(这是微软搞的服务器版的JavaScript,语法基本上与JavaScript一样)的,如果你用JScript作为asp的脚本语言,那么处理json字串就太简单了,因为它是原生支持json对象的,比如:
%@LANGUAGE="JSCRIPT" CODEPAGE="65001"%
%
var json=eval("("+Request("data")+")");
Response.write("p"+json.a+"/p");
Response.write("p"+json.b[1]+"/p");
%
测试方法:在网址后面添加参数 ?data={a:1,b:[2,3,4,5]}
如果坚持使用VBScript,那么它是不支持json的,必须通过VBScript+JScript混合编程来实现:
script language="jscript" runat="server"
Array.prototype.get=function(x){
return this[x];
};
function parseJSON(strJSON){
return eval("("+strJSON+")");
}
/script
%
set json=parseJSON(request("data"))
response.write "p" json.a "/p"
response.write "p" json.b.get(1) "/p"
%
请注意,这种情况下对json中的数组的处理方法跟通常是有所不同的。