【发布时间】:2019-09-06 15:54:56
【问题描述】:
我正在使用 db 连接来获取 global.asa 中的数据。 现在,我想从本地 json 文件而不是 db 连接中获取数据。
我知道在 global.asa 中可以同时使用 VBscript 和 javascript。 我想使用 javascript 从本地 json 文件中获取 json 数组。 得到json数组后,需要将json的几个变量设置为session变量。
这是我原来的 global.asa 文件。
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Session_OnStart
Const adOpenForwardOnly = 0
....
myConnection = "DRIVER={MySQL ODBC 3.51 Driver}; SERVER=localhost; PORT=3306; DATABASE=FirstAuto_; USER=xxxx; PASSWORD='xyz'; OPTION=0;"
set cnn = server.createObject("ADODB.connection")
cnn.ConnectionString = GloConnectionString
cnn.CursorLocation = adUseClient
cnn.open myConnection
Set rs = Server.CreateObject("ADODB.Recordset")
if instr(Request.ServerVariables("server_name"),"www.") Then
request_url = Request.ServerVariables("server_name")
Else
request_url = "https://www." & replace(Request.ServerVariables("server_name"),"mobile.","")
Response.Status="301 Moved Permanently"
Response.AddHeader "Location", request_url
'Destroys the Session. So that future calls will retrigger this code.
Session.Abandon
'Sends buffered output immediately.
Response.Flush
'Stops processing the .asp file and returns the current result.
Response.End
response.redirect "https://www." & Request.ServerVariables("server_name")
End If
mySQL = "SELECT websites.id AS website_id, websites.city as Market, websites.state, websites.state_abrev,"&_
" websites.county, websites.company, websites.google_tag, websites.latitude,"&_
" websites.longitude, websites.zoom, websites.dbUserName, "&_
" websites.hp_slider, websites.finance, websites.warranty, websites.theme, websites.autonet_url,"&_
" websites.autonet_key, websites.ppc, websites.website_url, websites.general_auto,"&_
" websites.estimates, websites.type, websites.shareThis, websites.owner_id "&_
" FROM websites where websites.website_url = 'http://" & request_url & "'"
set rs=cnn.execute(mySQL)
session("url") = replace(rs("website_url"),"http:","https:")
session("website") = cInt(rs("website_id"))
session("hp_slider") = cInt(rs("hp_slider"))
rs.close
set rs = nothing
cnn.Close
Set cnn = Nothing
End Sub
</SCRIPT>
我想使用本地 json 文件中的 json 数组设置会话值,例如 url、网站、hp_slider。
【问题讨论】:
-
您必须做的一件事是找到(或编写)一个 JSON 解析器,因为 JScript 没有内置的。已经有一些,您必须尝试它们并决定哪个你喜欢。您还应该尝试从 VBScript 调用 JScript,这非常简单。
-
P.S.如果您使用 VBScript JSON 解析器,您甚至不需要跨越 JScript 边界。
-
我在带有 js 的经典 ASP 中使用它,它工作正常:JSON.org/json2.js
-
谢谢@PeterVC。
标签: json vbscript asp-classic jscript