본문 바로가기
dev/classicAsp

classic ASP JSON parser 사용기.

by Kelvin™ 2015. 5. 19.

class asp 상에서 JSON 을 읽어들여 뿌려주는 소스는 국내에 그리 많지 않다.


JSON을 생성하고 읽는 사이트를 검색한 부분은 다음과 같다.


1. ASPJSON ( http://www.aspjson.com/ )
   가장 직관적으로 JSON 을 생성해서 웹 서비스를 만들어 줄수 있게 해주어 사용했다.
   생성하는 부분에 대한 속도는 빠르며 개인적으로 만족스럽게 사용하고 있다.
   그리고 글을 작성중인 이 시간에 구글일으로 "classic asp json parser" 검색하면 가장 처음으로 나오는 페이지 이기도 하다.

   JSON 을 작성하는 부분에 대한 속도는 불만이 없으나 외부 JSON 을 읽어서 서비스 해주기엔 속도가 과하게 느리다.
   JSON 의 모든 부분을 객체에 넣어서 그 후 JSON 을 호출할때 표시 해주는데, 이 JSON 을 객체에 너을때 시간이 너무 오래 걸린다.
   ( 검색결과가 약 1,000 건이 넘어가니 그 시간은 7~10 초정도가 걸리는 문제점이 발생 한다. )


그래서 대안을 찾기 시작 했다.

그때 눈에 띄는 아래의 화일을 발견했다.

2. json2

   블로그 중 http://cooldragon.tistory.com/107 에서 json 을 읽어주는 소스를 발견.

   그런데 depth 가 2depth 를 넘어가면 표시해주는 방법에 대한 매뉴얼은 없었다.

   예제에 나와 있던 get(0) 방식을 사용해도 나오지 않고 에러만 뱉어내고,

   나름의 정리방식으로 여러가지 방법을 실행해본바 다음과 같은 방법이 있슴을 알아냈다.
   여러 계층으로 되어 있을때 표시해 주는 방법이다.


- 먼저 호출 부분

   Set HttpReq = Server.CreateObject("MSXML2.ServerXMLHTTP")

HttpReq.open "POST",[JSON 서비스 주소], false

HttpReq.setRequestHeader "Content-Type", "application/json;charset=UTF-8"


    param = "{[여러파라미터값들]}"


    HttpReq.Send(param)  -- JSON 화일 호출


jsonstring = HttpReq.responseText

   

    Set HttpReq = nothing


dim Info : set Info = JSON.parse(join(array(jsonstring)))  -- 변수에 넣음. 기존엔 이 부분의 속도가 엄청 느렸었다. ( 지금은 1초 이내에 완료 )


--데이터 표시 작업

For intloop = 0 To Info.dataview.length-1   -- JSON data 에 따라 다르다.

Info.dataview.get(intloop).[_src].[prd_name]   -- 여러 depth 를 표시 해 준다.

next



asp 에서 간단하게(?) JSON 을 읽어 표시해 줄 수 있다.


===============================================================


위의 내용으로 유입이 많아 첨언을 드리고자 합니다.


보통의 경우 asp + mssql 환경에서 JSON 데이터를 추출하실텐데요.

이 경우 DB 마이그레이션이 현재 상태에서 불가한 것으로 판단됩니다.


이 경우 차라리 node.js 서버를 새롭게 하나 구성하고 그 서버에서 MSSQL 을 바라보게 한 후 JSON 서비스 서버를 따로 운영하는게 맞다는 판단입니다.


이렇게 하는것이 기존 asp 웹서버의 부하를 줄이고 더 쉽게 개발할 수 있는 방법으로 판단 됩니다.


방문해 주셔서 감사합니다.



'dev > classicAsp' 카테고리의 다른 글

이미지 비율 계산식 만들기.  (0) 2015.12.31
classic asp 에서 영문이나 숫자만 넘겨받기.  (0) 2014.10.22