ASP 读取json后如何 写入数据库
<%
Dim scriptCtrl
Function parseJSON(str)
If Not IsObject(scriptCtrl) Then
Set scriptCtrl = Server.CreateObject("MSScriptControl.ScriptControl")
scriptCtrl.Language = "JScript"
scriptCtrl.AddCode "function ActiveXObject() {}" ' 覆盖 ActiveXObject
scriptCtrl.AddCode "function GetObject() {}" ' 覆盖 ActiveXObject
scriptCtrl.AddCode "Array.prototype.get = function(x) { return this[x]; }; var result = null;"
End If
On Error Resume Next
scriptCtrl.ExecuteStatement "result = " & str & ";"
Set parseJSON = scriptCtrl.CodeObject.result
If Err Then
Err.Clear
Set parseJSON = Nothing
End If
End Function
Dim json
json = "{a:""aaa"", b:{ name:""bb"", value:""text"" }, c:[""item0"", ""item1"", ""item2""]}"
Set obj = parseJSON(json)
Response.Write obj.a & "<br />"
Response.Write obj.b.name & "<br />"
Response.Write obj.c.length & "<br />"
Response.Write obj.c.get(0) & "<br />"
%>
obj.a obj.b.name 正常显示出来了,但如何把obj.c.name写入数据库? name=obj.b.name 不好用啊
obj.b.name属于什么属性函数?
传递给aaa.asp的方法已经实现了,但满足不了需求,想在本页直接把obj.b.name赋值给NAME然后保存name到数据库 展开
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 帐号可修改权限。
“name=obj.b.name 不好用”——为何不好用呢?有出错吗?提示是什么?obj.b.name等于"bb"啊,Dim name : name=obj.b.name 应该是正常的啊。obj.b.name不是什么函数,它仅是你的JSON对象层次啊。
“想在本页直接把obj.b.name赋值给NAME然后保存name到数据库”—— sql = "update (表) set name = '" & obj.b.name & "' where (条件)" 就可以了啊。
asp得到json数据后,进行拆分。
然后用sql语句插入数据就可以了。