마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

서버에서 db를 json parser로 읽어 오는데에 질문입니다.

0 추천

혼자 공부하는 중인데

달력에 특정 스케쥴을 그림이나 이미지로 보여줄라고 해서

db에 날짜와 사용자별로 이벤트1,2,3 이런식으로 저장되어있는데요.

안드로이드에서 날짜를 통해 1~31, 1~30 이렇게 일수별로 읽어오도록 구현을 했더니

실제로 db의 내용은 그렇게 많지 않음에도 불구하고,  빈번한 접속 때문에 속도 저하가 있는 것 같아서요.

 

이러한 문제를 해결하는데 도움을 얻을 수 있을까요?

일단 mysql db가 서버에 있는데 이 내용을 날짜 별로 아닌 사용자 별로 모두 불러와서

안드로이드 sql에 저장한다음에 사용하면은 접속을 최소화 할 수 있을 것 같은데.. 

여기서 문제가 json 파서를 이용하는 거에서

여러개가 넘어오면은 제가 처리를 어떻게 해야할지를 몰라서..

{"success":1,"reference":{"day":"2013-08-05","user":"1234","event":"0"}}

이런식으로 한줄이면 처리를 할 수 있는데

{"success":1,"reference":{"day":"2013-08-05","user":"1234","event":"0"}}

{"success":1,"reference":{"day":"2013-08-05","user":"1234","event":"1"}}

{"success":1,"reference":{"day":"2013-08-05","user":"1234","event":"2"}}

이런식으로 같은 날짜의 이벤트가 여러개거나 유저아이디별로 하면 여러날짜의

이벤트를 받게 되는는데..이렇게 여러개가 넘어오면 어떻게 처리해야할지를 몰라서..

방법 좀 알려주세요..

 

귀도령 (120 포인트) 님이 2013년 8월 5일 질문

2개의 답변

+1 추천

HTTP통신을 여러번 하시는건 아니죠?

음 일단 JSON 인코딩이 적절하지 못하시네요.. 올바른 예로는

{

    "success": 1,
    "reference": [
        {
            "day": "2013-08-05",
            "events": [
                {
                    "user": "1234",
                    "event": "0"
                },
                {
                    "user": "1234",
                    "event": "1"
                },
                {
                    "user": "1234",
                    "event": "2"
                }
            ]
        }
    ]
}

이겠네요. (JSON validate는 http://jsonlint.com 에서 하실수 있습니다) 

유저와 이벤트간의 종속성을 몰라서 다른 방법은 추천을 못드리겠고, 제 php 소스중에 json incode하는 부분 짤라드릴께요

$querySelect = "응답해줄 쿼리. 필요한것만 갖고와야 함";

	$result = $db->query($querySelect);

	
	$willReturn = array();

	while($row = $result->fetch_array(MYSQLI_ASSOC)) {
		$willReturn['reference'][] = $row;
	}

       $willReturn['success'] = 1;

	exit(json_encode($willReturn));

 

잔인한귀요미 (180 포인트) 님이 2013년 8월 5일 답변
잔인한귀요미님이 2013년 8월 5일 수정
0 추천

JSON은 정하기 나름인것같아요.

{"success":1,"reference":{"day":"2013-08-05","user":"1234","event":"0"}}

{"success":1,"reference":{"day":"2013-08-05","user":"1234","event":"0"}}

{"success":1,"reference":{"day":"2013-08-05","user":"1234","event":"1"}}

{"success":1,"reference":{"day":"2013-08-05","user":"1234","event":"2"}}

 

말씀하신데로 이렇게 데이터를 가져오는 상황이라면

JSONArray를 사용해서 해결할수 있을것같은데요.

JSONArray검색해 보세요.

얼룩돼지 (15,720 포인트) 님이 2013년 8월 5일 답변
Thread로 Client 실행 후 실시간으로 JSON데이터 가져오기
...