Chang
154
2017-08-13 04:36:34.0 작성 2017-08-13 13:59:25.0 수정됨
5
247

JSON 다중배열 데이터 받아오기에 관련해 문의 드립니다..


json내용입니다..

{
	   "bookmakers": [
	   	   {
	   	   	   "id": 78,
	   	   	   "name": "AAAA",
	   	   	   "type": [
	   	   	   	   {
	   	   	   	   	   "id": 9,
	   	   	   	   	   "name": "BBBB",
	   	   	   	   	   "status": [
	   	   	   	   	   	   {
	   	   	   	   	   	   	   "id": 39816125,
	   	   	   	   	   	   	   "name": "CCCC",
	   	   	   	   	   	   	   "identifier": "",
	   	   	   	   	   	   	   "bookmakerEvents": [
	   	   	   	   	   	   	   	   {
	   	   	   	   	   	   	   	   	   "id": 320771584,
	   	   	   	   	   	   	   	   	   "active": true,
	   	   	   	   	   	   	   	   	   "eventId": 73232200,
	   	   	   	   	   	   	   	   	   "name": "DDDD"
	   	   	   	   	   	   	   	   }
	   	   	   	   	   	   	   ]
	   	   	   	   	   	   }
	   	   	   	   	   ]
	   	   	   	   }
	   	   	   ]
	   	   }
	   ],
	   "errors": {},
	   "updatedAt": 1502555866
}
받아오는 소스는..


<!-- #include file="json2.asp"-->
<%
   Dim getJson
   Dim strData
	   
	   url = "주소"
	   Set objHttp = server.CreateObject("Microsoft.XMLHTTP")
	   objhttp.open "get", url, false
	   objhttp.setrequestheader "content-type", "application/JSON; charset=utf-8"
	   objhttp.send
	   jsontext = objhttp.responsetext 
   Set getJson = JSON.parse(jsontext)
   
   id = getJson.bookmakers.get(0).id
   name = getJson.bookmakers.get(0).name
   types = getJson.bookmakers.get(0).type

  ' get_packer = getJson.bookmakers.get(0).get_packer
%>
ID	 :	   <%= id %>	  <br>
NAME	 :	   <%= name %>	  <br>
TYPES-ID :	   <%= types %>


첫번째 bookmakers의 id,name은 잘 받아오는데

types이후의 내용은 어떻게 받아올지 전혀 모르겠네요..

작은 힌트라도 부탁드립니다..ㅠㅠ

감사합니다..

0
0
  • 답변 5

  • LichKing
    6k
    2017-08-13 13:00:30.0

    위 json문자열을 보면 types가 아니라 type인데요..

    0
  • Chang
    154
    2017-08-13 14:00:25.0

    작성중 오타가 났네요..

    실행을 하면 

    ID : 78
    NAME : AAAA
    TYPES-ID : [object Object]

    이렇게 결과가 나옵니다..


    0
  • 병갈이
    125
    2017-08-13 14:29:39.0

    json이 map형태로 구성되어있는듯 한데, types같은경우 문자열이 아니라 객체를 받게되죠. 그래서 출력시 오브젝트어쩌구 뜰까구여..

    jsp는 자바를 쓰니까...추측해보자면,

    json파일이 Map<String, Object> 형태와 동일한 구조인듯 보입니다..그걸 감해서

     json파일구조가 구현된 객체가 있어야될꺼구요, 거기에 맞는 값들을 반환해야될듯 하네요.

    즉, 위에서 types는 문자열이 아닌 객체가 반환된것 같습니다.ㅎㅎㅎ

    여담으로 저는 구글의 Gson을 사용하는데, 그건 json파일에 부합하는 객체만 구현되어있으면 쉽게 자료변환이 가능합니다. 뭔가 위에 방법이 복잡해 보여서 여담을 남깁니다.ㅎㅎㅎ

    0
  • cyberjet
    192
    2017-08-13 17:07:59.0

    TYPES-ID : [object Object] 

    이렇게 나오는 이유는 배열 객체이기 때문인데요.

    위의 데이터를 말하자면 bookmakers 도 배열 객체로 넘어오는데,

    단지 데이터가 1 뿐이라서 bookmakers.get(0) 의 형태로 사용한 것 같은데.

    bookmakers 가 배열로 넘어오기 때문에 우선 데이터가 얼마나 있는지를

    체크하고 for 문을 사용해서 처리를 하는 게 정상적인 처리방법 같습니다.

    0
  • Chang
    154
    2017-08-14 02:21:20.0

    감사합니다.. 덕분에 잘 해결했어요.. (_ _)

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.