클래식 ASP에서 JSON 개체를 반환하는 방법
클래식 ASP 스크립트(AJAX 요청의 일부)를 사용하여 JSON 개체를 반환하고 싶습니다.
다음과 같은 텍스트로 응답을 보내면 됩니다.
response.write("{ query:'Li', suggestions:['Liberia','Libyan Arab Jamahiriya','Liechtenstein','Lithuania'], data:['LR','LY','LI','LT'] }")
이것이 작동할까요, 아니면 실제로 JSON 라이브러리가 필요할까요?
편집: http://www.devbridge.com/projects/autocomplete/jquery/ #how to work에서 자동 완성 플러그인을 얻으려고 합니다.
Javascript:
$(document).ready(function() {
var a = $('#txtValue').autocomplete({
serviceUrl:'script.asp',
minChars:2,
maxHeight:400,
width:300,
zIndex: 9999,
deferRequestBy: 0, //miliseconds
onSelect: function(value, data){ alert('You selected: ' + value + ', ' + data); },
});
ASP:
<%
response.ContentType = "application/json"
response.write("{ query:'Li', suggestions:['Liberia','Libyan Arab Jamahiriya','Liechtenstein','Lithuania'], data:['LR','LY','LI','LT'] }")
%>
자동 완성이 작동하지 않습니다.lookup과 같은 로컬 룩업 배열을 사용하면 작동합니다: ['1월', '2월', '3월', '4월', '5월']
하지만 아약스가 잘못되었다는 것은 목록을 제대로 반환하지 않는다는 것을 의미합니다.
클라이언트 측에서 구문 분석 오류가 발생한 것 같습니다.
이게 별 차이가 없을 줄 알았는데 부동산 이름까지 다 인용하면 효과가 있을 것 같습니다.그리고 단일 따옴표 대신 이중 따옴표를 사용하십시오. 분명히 차이가 있습니다.
두 배의 인용문을 두 배로 늘린다는 것을 기억하세요(적어도 VBScript에서는 그렇게 하는 것 같아요 - 오래됐어요).
그래서:
<%
Response.ContentType = "application/json"
Response.Write("{ ""query"":""Li"", ""suggestions"":[""Liberia"",""Libyan Arab Jamahiriya"",""Liechtenstein"",""Lithuania""], ""data"":[""LR"",""LY"",""LI"",""LT""] }")
%>
아래 코드로 작동하도록 했습니다.따옴표를 두 배로 늘리고 쿼리 문자열을 입력한 후
currQuery= request.querystring("query")
response.expires=-1
Dim rsMain,sqlMain,rettxt,JobOpenToArr
set rsMain= Server.CreateObject("ADODB.Recordset")
rsMain.CursorLocation = adUseClient
sqlMain = "select JobOpenTo FROM Jobs WHERE JobOpenTo LIKE '%"&currQuery & "%' group by JobOpenTo order by JobOpenTo"
rsMain.Open sqlMain, Session("XXX_CMS")
if Not rsMain.Eof Then
'## build the string
rettxt = "{query:""" & currQuery & """, suggestions:["
JobOpenToArr = rsMain.getRows()
For i = 0 to UBound(JobOpenToArr,2)
rettxt = rettxt & """" & JobOpenToArr(0,i) & ""","
Next
'##knock off trailing comma
rettxt = left(rettxt,len(rettxt)-1)
rettxt = rettxt & "]}"
Response.Write rettxt
Joe의 대답은 당신에게 효과가 있을 것입니다.그러나 클래식 ASP에서 많은 JSON을 출력할 경우에는 aspjson을 참조할 수 있습니다.
언급URL : https://stackoverflow.com/questions/6977261/how-to-return-a-json-object-in-classic-asp
'programing' 카테고리의 다른 글
파워셸의 스레드는 어떻게 작동합니까? (0) | 2023.09.03 |
---|---|
Git에서 원격 분기의 기본 재배치 (0) | 2023.09.03 |
HTTP 페이지에서 AJAX를 통한 HTTPS 요청 (0) | 2023.09.03 |
wcf를 사용하여 SQL 서버에 대한 쿼리를 실행할 때 이상한 오류가 발생함 (0) | 2023.09.03 |
MariaDB가 odbc.ini의 DSN에 연결합니다. (0) | 2023.09.03 |