이번에 안드로이드를 공부하면서 어플리케이션을 한번 만들어보고자 하는 학생입니다~
APM을 사용하여서 구현하는 중인데요.
어느정도는 구현이 다 된듯 싶은데. PHP와의 연동에서 좀 문제가 있는듯하여 조언을 구해봅니다.
구현하려고 하는 것은 PHP에서 쿼리를하여 DB에서 SELECT된 값들을 출력하는 것입니다.
쿼리의 결과는 [{"0":"Shop"},{"1":"Shop1"},{"2":"Shop2"},{"3":"Shop3"}] JSON 형식으로 만들어서
각각의 key값과 일치하는 값들을 출력하려고 합니다~
예를들어 검색하는 값이 2라면 key값인 2와 일치하는 Shop2가 출력되어야합니다.
아래는 문제가 발생하는 PHP코드와 자바코드입니다.
if($results!=null){
echo "[";
foreach ($results as $value)
{
if($int>0){
echo ",";
}
echo "{\"$int\":\"$value\"}";
$int++;
}
echo "]";
}
형태로 JSON 형태로 출력하고
[{"0":"Shop"},{"1":"Shop1"},{"2":"Shop2"},{"3":"Shop3"}]
형태로 출력이되는데
그걸 HttpPost로 (parameter가있는관계로)
DefaultHttpClient client = new DefaultHttpClient();
String html="";
String line=null;
try{
HttpResponse response = client.execute(request);
BufferedReader br = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
while((line=br.readLine())!=null){
html+=line;
}
br.close();
}catch(Exception e){}
return html;
하여 html 을 JSONArray에 넣으니 변환이 불가능하다고 뜹니다
html자체를 텍스트뷰에 넣으면
분명히 정상적인 모양 ->>> [{"0":"Shop"},{"1":"Shop1"},{"2":"Shop2"},{"3":"Shop3"}]
으로 출력이되는데.. 무엇이 문제일까요 ㅠ
*************공지사항 다 읽었습니다!~




http://www.php.net/manual/en/function.json-encode.php 이 페이지의 내용을 보시고 JSONArray를 다시 만들어주세요.
간단하게 분석한 결과로는
[{"0":"Shop"},{"1":"Shop1"},{"2":"Shop2"},{"3":"Shop3"}]
는 잘못된 형식이고
{"0":"Shop","1":"Shop1","2":"Shop2","3":"Shop3"}
이와 같이 나와야 하는 것 같습니다.
링크한 페이지는 PHP의 JSON확장을 이용한 방법인데 덧글을 보시면 확장이 없이 JSONArray를 만들고 해석하는 코드가 들어가 있습니다. 참고하시기 바랍니다.