안녕하세요, 질문드리느라 자주 찾네요 ; ㅁ;
json parsing에 대해 여쭤보려구요
아래 홈페이지를 parsing하고 싶은데요;ㅁ;
로그를 찍어보니 전체내용이 뜨더라구요(저는 name, maker만 가져오고 싶은데요 ㅜㅜ)
어느부분을 고쳐야 원하는 데이터를 가져올수있을까요?
(php 형식이 바로 id로 들어가기 때문에 찾는게 쉽지않아서 올립니다 ㅜㅜ)
http://appserver.jbnu.ac.kr/dbfood/viewbasicdatajson.php
public void setListView() {
SimpleAdapter adapter = new SimpleAdapter(getBaseContext(), data,
android.R.layout.simple_list_item_2,
new String[] {
HASH_KEY_NAME, HASH_KEY_MAKER
},
new int[] {
android.R.id.text1, android.R.id.text2
});
ListView lv = (ListView)findViewById(R.id.listview_direct);
lv.setAdapter(adapter);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View arg1, int position,
long id) {
}
});
}
//////////////////////////////////////////////////////////////////////////////
// 완료
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case 1:
try{
// JSONObject jsonObject = new JSONObject((String)msg.obj);
JSONArray ja = new JSONArray((String)msg.obj);
for(int i=0; i<ja.length(); i++){
JSONObject order = ja.getJSONObject(i);
Log.v("TTT", order.getString("name"));
Log.v("TTT", order.getString("maker"));
}
}
catch (JSONException e) {
e.printStackTrace();
// Toast.makeText(this, "error", 0).show();
}
setListView();
// 대기 다이얼로그 제거
WaitDlg.stop(dlg);
break;
default:
break;
}
}
};
말씀하신 obj가 위의 코드에서는 order에 해당하는거죠?
String _name = (String)order.get("name")
String _maker = (String)order.get("maker");
Log.v("TTT", _name);
Log.v("TTT", _maker);
찍어보니
역시 똑같은 상태에요 ㅜㅜ
08-18 04:14:44.910: V/TTT(400): <meta http-equiv="content-type" content="text/html; charset=UTF-8">
08-18 04:14:45.051: V/TTT(400): [{"id":"1","name":"\uac10\uc790\ubd80\uce68\uac1c","maker":"\uba54\ub974\uc2dc\uc120\uc9f1","kind":"\uac04\uc2dd\ub958","ingre":"\uac10\uc790*\ubd80\uce68\uac00\ub8e8*\uc18c\uae08"},{"id":"2","name":"\uc624\uc774\ucc38\uce58 \uc5d0\ud53c\ud0c0\uc774\uc800","maker":"\uce74\ud478\uce58\ub178","kind":"\ud2b9\ubcc4\ud55c \ub0a0","ingre":"\uc624\uc774*\ucc38\uce58*\ud06c\ub9ac\ubbf8*\uc591\ud30c*\ub9c8\ub298*\uc18c\uae08*\ud6c4\ucd94*\ubc29\uc6b8\ud1a0\ub9c8\ud1a0* \ub9c8\uc694\ub124\uc988"},{"id":"3","name":"\uc624\ub808\uc624\uc250\uc774\ud06c","maker":"\uce74\ud478\uce58\ub178","kind":"\uac04\uc2dd\ub958","ingre":"\uc624\ub808\uc624\ucfe0\ud0a4*\uc6b0\uc720*\ubc14\ub2d0\ub77c\uc544\uc774\uc2a4\ud06c\ub9bc*\uc5bc\uc74c*\uc0dd\ud06c\ub9bc*\uc7a5\uc2dd\uc6a9\ucfe0\ud0a4"},{"id":"4","name":"\ubc30\uc219","maker":"\uce74\ud478\uce58\ub178","kind":"\uac04\uc2dd\ub958","ingre":"\ubc30*\uc0dd\uac15*\ud1b5\ud6c4\ucd94*\ubb3c*\uc7a3*\uc124\ud0d5"},{"id":"5","name":"\uac00\ub798\ub5a1\ub9db\ud0d5","maker":"\ubaa8\ubaa8\ub465\uc774","kind":"\uac04\uc2dd\ub958","ingre":"\uac00\ub798\ub5a1*\ubb3c\uc5ff*\uc124\ud0d5*\ubb3c"},{"id":"6","name":"\uc528\ub9ac\uc5bc\uacfc\uc790","maker":"\ubaa8\ubaa8\ub465\uc774","kind":"\uac04\uc2dd\ub958","ingre":"\uc528\ub9ac\uc5bc*\uc544\ubaac\ub4dc*\uc62c\ub9ac\uace0\ub2f9"},{"id":"7","name":"\ucc38\uce58\ub5a1\ubcf6\uc774","maker":"\ubaa8\ubaa8\ub465\uc774","kind":"\uac04\uc2dd\ub958","ingre":"\ub5a1*\uc5b4\ubb35*\uc591\ud30c*\ucc38\uce58*\ubb3c*\uace0\ucd94\uc7a5*\uace0\ucda7\uac00\ub8e8*\uc124\ud0d5"},{"id":"8","name":"\uad6d\ubb3c\ub5a1\ubcf6\uc774","maker":"\ubaa8\ubaa8\ub465\uc774","kind":"\uac04\uc2dd\ub958","ingre":"\ub5a1*\ub9cc\ub450*\uc5b4\ubb35*\ub300\ud30c*\ub2f9\uadfc*\uc0b6\uc740\uacc4\ub780*\ubb3c*\uace0\ucd94\uc7a5*\uace0\ucda7\uac00\ub8e8*\uc124\ud0d5*\ubb3c\uc5ff *\ub9c8\ub298*\ucf00\ucca9"},{"id":"9","name":"\uacc4\ub780\ud06c\ub85c\ucf13","maker":"\uae0d\uc84d\uc774","kind":"\ubc18\ucc2c\ub958","ingre":"\uacc4\ub780*\uac80\uc740\uae68*\ucf00\ucca9"},{"id":"10","name":"\uac1c\uc131\uc788\ub294 \uacc4\ub780\ub9d0\uc774","maker":"\ubaa8\ubaa8\ub465\uc774","kind":"\uac04\uc2dd\ub958","ingre":"\uac00\ub798\ub5a1*\ubb3c\uc5ff*\uc124\ud0d5*\ubb3c"},{"id":"11","name":"\ucf69\ub098\ubb3c\ubb34\uce68","maker":"\uae0d\uc84d\uc774","kind":"\ubc18\ucc2c\ub958","ingre":"\ucf69\ub098\ubb3c*\ud30c*\ub9c8\ub298*\uc18c\uae08"},{"id":"12","name":"\ucc38\uce58\ub9c8\uc694\ubc25","maker":"\uc9c0\ub871\uc774","kind":"\uc2dd\uc0ac\ub958","ingre":"\ucc38\uce58*\uae7b\uc78e*\uc591\ud30c*\ubc25*\uac04\uc7a5*\ub9c8\uc694\ub124\uc988"},{"id":"13","name":"\ucf69\ub098\ubb3c\ubc25","maker":"\uacfc\uc77c\uc9f1","kind":"\uc2dd\uc0ac\ub958","ingre":"\ucf69\ub098\ubb3c*\uc300*\ucabd\ud30c*\uac04\uc7a5*\uace0\ucd94\uac00\ub8e8*\ucc38\uae30\ub984*\ud1b5\uae68"},{"id":"14","name":"\uac10\uc790\uce69","maker":"\uae0d\uc84d\uc774","kind":"\uac04\uc2dd\ub958","ingre":"\uac10\uc790*\uc18c\uae08*\uc2dd\uc6a9\ub958*\uac10\uc790\uae4e\uc774"},{"id":"15","name":"\ub2ed\ubcf6\uc74c\uc8fc\uba39\ubc25","maker":"\uae0d\uc84d\uc774","kind":"\ud2b9\ubcc4\ud55c \ub0a0","ingre":"\uac10\uc790*\ub2f9\uadfc*\ud638\ubc15*\ub2ed\uac00\uc2b4\uc0b4*\uace0\ucd94\uc7a5*\ubb3c\uc5ff"},{"id":"16","name":"\uc18c\uc138\uc9c0 \uc57c\ucc44\ubcf6\uc74c","maker":"\uc678\ub208\ubc15\uc774","kind":"\ubc18\ucc2c\ub958","ingre":"\ube44\uc5d4\ub098\uc18c\uc138\uc9c0*\uc57c\ucc44*\ucf00\ucca9*\uac04\uc7a5"},{"id":"17","name":"\uc794\uce58\uad6d\uc218","maker":"\uc140\ub9ac","kind":"\uc2dd\uc0ac\ub958","ingre":"\uad6d\uc218\uc18c\uba74*\uc2dd\ucd08*\uae40\uce58*\uba78\uce58*\ucc38\uae30\ub984"},{"id":"18","name":"\uace0\uad6c\ub9c8\ubc25","maker":"\uc678\ub208\ubc15\uc774","kind":"\uc2dd\uc0ac\ub958","ingre":"\uace0\uad6c\ub9c8*\uc300"},{"id":"19","name":"\ucf69\ub098\ubb3c\uad6d","maker":"\uc784\uc790","kind":"\ubc18\ucc2c\ub958","ingre":"\ucf69\ub098\ubb3c*\ub9c8\ub298*\ud30c*\ub2e4\uc2dc\ub9c8*\uba78\uce58*\uc18c\uae08"},{"id":"20","name":"\ubc25\ud1b5\ube0c\ub77c\uc6b0\ub2c8","maker":"\ud3ec\ub9ac","kind":"\uac04\uc2dd\ub958","
저도 초보인데 지금 그쪽 공부하느라 올려주신 주소로 연습해봤는데요,
JSONArray만드는 부분에서 JSONException이 발생하네요.
디버깅해보니까 웹브라우저로 열어본 결과랑은 다르게 (저는 크롬 사용) meta정보가 String 앞부분에 붙어서 넘어옵니다.
그부분을 제거해주고 다시 해보니까 잘되네요.
String json = 긁어온 페이지;
JSONArray ja = new JSONArray(json.replace("<meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\">", ""));
이렇게 해보세요.
말씀대로 해봤더니,
String ADDRESS_basicdata = "http://appserver.jbnu.ac.kr/dbfood/viewbasicdatajson.php";
JSONArray ja = new JSONArray(ADDRESS_basicdata.replace("<meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\">", ""));
해도 로그는 똑같이 뜨네요 ;ㅁ; 오히려 시간이 오래걸려 강제 작업종료를 물어보는 다이얼로그창이떠버리네요 ㅜㅜ
08-18 04:10:33.861: V/TTT(369): <meta http-equiv="content-type" content="text/html; charset=UTF-8">
08-18 04:10:34.031: V/TTT(369): [{"id":"1","name":"\uac10\uc790\ubd80\uce68\uac1c","maker":"\uba54\ub974\uc2dc\uc120\uc9f1","kind":"\uac04\uc2dd\ub958","ingre":"\uac10\uc790*\ubd80\uce68\uac00\ub8e8*\uc18c\uae08"},{"id":"2","name":"\uc624\uc774\ucc38\uce58 \uc5d0\ud53c\ud0c0\uc774\uc800","maker":"\uce74\ud478\uce58\ub178","kind":"\ud2b9\ubcc4\ud55c \ub0a0","ingre":"\uc624\uc774*\ucc38\uce58*\ud06c\ub9ac\ubbf8*\uc591\ud30c*\ub9c8\ub298*\uc18c\uae08*\ud6c4\ucd94*\ubc29\uc6b8\ud1a0\ub9c8\ud1a0* \ub9c8\uc694\ub124\uc988"},{"id":"3","name":"\uc624\ub808\uc624\uc250\uc774\ud06c","maker":"\uce74\ud478\uce58\ub178","kind":"\uac04\uc2dd\ub958","ingre":"\uc624\ub808\uc624\ucfe0\ud0a4*\uc6b0\uc720*\ubc14\ub2d0\ub77c\uc544\uc774\uc2a4\ud06c\ub9bc*\uc5bc\uc74c*\uc0dd\ud06c\ub9bc*\uc7a5\uc2dd\uc6a9\ucfe0\ud0a4"},{"id":"4","name":"\ubc30\uc219","maker":"\uce74\ud478\uce58\ub178","kind":"\uac04\uc2dd\ub958","ingre":"\ubc30*\uc0dd\uac15*\ud1b5\ud6c4\ucd94*\ubb3c*\uc7a3*\uc124\ud0d5"},{"id":"5","name":"\uac00\ub798\ub5a1\ub9db\ud0d5","maker":"\ubaa8\ubaa8\ub465\uc774","kind":"\uac04\uc2dd\ub958","ingre":"\uac00\ub798\ub5a1*\ubb3c\uc5ff*\uc124\ud0d5*\ubb3c"},{"id":"6","name":"\uc528\ub9ac\uc5bc\uacfc\uc790","maker":"\ubaa8\ubaa8\ub465\uc774","kind":"\uac04\uc2dd\ub958","ingre":"\uc528\ub9ac\uc5bc*\uc544\ubaac\ub4dc*\uc62c\ub9ac\uace0\ub2f9"},{"id":"7","name":"\ucc38\uce58\ub5a1\ubcf6\uc774","maker":"\ubaa8\ubaa8\ub465\uc774","kind":"\uac04\uc2dd\ub958","ingre":"\ub5a1*\uc5b4\ubb35*\uc591\ud30c*\ucc38\uce58*\ubb3c*\uace0\ucd94\uc7a5*\uace0\ucda7\uac00\ub8e8*\uc124\ud0d5"},{"id":"8","name":"\uad6d\ubb3c\ub5a1\ubcf6\uc774","maker":"\ubaa8\ubaa8\ub465\uc774","kind":"\uac04\uc2dd\ub958","ingre":"\ub5a1*\ub9cc\ub450*\uc5b4\ubb35*\ub300\ud30c*\ub2f9\uadfc*\uc0b6\uc740\uacc4\ub780*\ubb3c*\uace0\ucd94\uc7a5*\uace0\ucda7\uac00\ub8e8*\uc124\ud0d5*\ubb3c\uc5ff *\ub9c8\ub298*\ucf00\ucca9"},{"id":"9","name":"\uacc4\ub780\ud06c\ub85c\ucf13","maker":"\uae0d\uc84d\uc774","kind":"\ubc18\ucc2c\ub958","ingre":"\uacc4\ub780*\uac80\uc740\uae68*\ucf00\ucca9"},{"id":"10","name":"\uac1c\uc131\uc788\ub294 \uacc4\ub780\ub9d0\uc774","maker":"\ubaa8\ubaa8\ub465\uc774","kind":"\uac04\uc2dd\ub958","ingre":"\uac00\ub798\ub5a1*\ubb3c\uc5ff*\uc124\ud0d5*\ubb3c"},{"id":"11","name":"\ucf69\ub098\ubb3c\ubb34\uce68","maker":"\uae0d\uc84d\uc774","kind":"\ubc18\ucc2c\ub958","ingre":"\ucf69\ub098\ubb3c*\ud30c*\ub9c8\ub298*\uc18c\uae08"},{"id":"12","name":"\ucc38\uce58\ub9c8\uc694\ubc25","maker":"\uc9c0\ub871\uc774","kind":"\uc2dd\uc0ac\ub958","ingre":"\ucc38\uce58*\uae7b\uc78e*\uc591\ud30c*\ubc25*\uac04\uc7a5*\ub9c8\uc694\ub124\uc988"},{"id":"13","name":"\ucf69\ub098\ubb3c\ubc25","maker":"\uacfc\uc77c\uc9f1","kind":"\uc2dd\uc0ac\ub958","ingre":"\ucf69\ub098\ubb3c*\uc300*\ucabd\ud30c*\uac04\uc7a5*\uace0\ucd94\uac00\ub8e8*\ucc38\uae30\ub984*\ud1b5\uae68"},{"id":"14","name":"\uac10\uc790\uce69","maker":"\uae0d\uc84d\uc774","kind":"\uac04\uc2dd\ub958","ingre":"\uac10\uc790*\uc18c\uae08*\uc2dd\uc6a9\ub958*\uac10\uc790\uae4e\uc774"},{"id":"15","name":"\ub2ed\ubcf6\uc74c\uc8fc\uba39\ubc25","maker":"\uae0d\uc84d\uc774","kind":"\ud2b9\ubcc4\ud55c \ub0a0","ingre":"\uac10\uc790*\ub2f9\uadfc*\ud638\ubc15*\ub2ed\uac00\uc2b4\uc0b4*\uace0\ucd94\uc7a5*\ubb3c\uc5ff"},{"id":"16","name":"\uc18c\uc138\uc9c0 \uc57c\ucc44\ubcf6\uc74c","maker":"\uc678\ub208\ubc15\uc774","kind":"\ubc18\ucc2c\ub958","ingre":"\ube44\uc5d4\ub098\uc18c\uc138\uc9c0*\uc57c\ucc44*\ucf00\ucca9*\uac04\uc7a5"},{"id":"17","name":"\uc794\uce58\uad6d\uc218","maker":"\uc140\ub9ac","kind":"\uc2dd\uc0ac\ub958","ingre":"\uad6d\uc218\uc18c\uba74*\uc2dd\ucd08*\uae40\uce58*\uba78\uce58*\ucc38\uae30\ub984"},{"id":"18","name":"\uace0\uad6c\ub9c8\ubc25","maker":"\uc678\ub208\ubc15\uc774","kind":"\uc2dd\uc0ac\ub958","ingre":"\uace0\uad6c\ub9c8*\uc300"},{"id":"19","name":"\ucf69\ub098\ubb3c\uad6d","maker":"\uc784\uc790","kind":"\ubc18\ucc2c\ub958","ingre":"\ucf69\ub098\ubb3c*\ub9c8\ub298*\ud30c*\ub2e4\uc2dc\ub9c8*\uba78\uce58*\uc18c\uae08"},{"id":"20","name":"\ubc25\ud1b5\ube0c\ub77c\uc6b0\ub2c8","maker":"\ud3ec\ub9ac","kind":"\uac04\uc2dd\ub958","
String _name = (String) obj.get("name");
String _maker = (String) obj.get("maker");
로해보시겠어요?