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

json 파싱해서 hashmap에서 막히는데요..ㅜㅜ

0 추천

 

protected Boolean doInBackground(final String... args)  {

   if(SET_VALUE1 == 1) {
    url = "http://food.jeonju.go.kr/planweb/inine/content/json.9is?tag=%EC%A0%84%EC%A3%BC%EB%B9%84%EB%B9%94%EB%B0%A5";
   } else if(SET_VALUE1 == 2) {
    url = "http://food.jeonju.go.kr/planweb/inine/content/json.9is?tag=%EC%BD%A9%EB%82%98%EB%AC%BC%EA%B5%AD%EB%B0%A5";
   } else if(SET_VALUE1 == 3) {
    url = "http://food.jeonju.go.kr/planweb/inine/content/json.9is?tag=%ED%95%9C%EC%A0%95%EC%8B%9D";
   } else if(SET_VALUE1 == 4) {
    url = "http://food.jeonju.go.kr/planweb/inine/content/json.9is?tag=%EB%B0%B1%EB%B0%98";
   } else if(SET_VALUE1 == 5) {
    url = "http://food.jeonju.go.kr/planweb/inine/content/json.9is?tag=%EB%A7%89%EA%B1%B8%EB%A6%AC%EC%A0%84%EB%AC%B8%EC%A0%90";
   } else if(SET_VALUE1 == 6) {
    url = "http://food.jeonju.go.kr/planweb/inine/content/json.9is?tag=%ED%95%9C%EC%98%A5%EB%A7%88%EC%9D%84%EC%9D%8C%EC%8B%9D%EC%A0%90";
   }

   JSONParser jParser = new JSONParser();
   JSONArray json = jParser.getJSONFromUrl(url);

   for (int i = 0; i < json.length(); i++) { // url 주소내에 있는 배열의 길이
    try {
     JSONObject c = json.getJSONObject(i);
     JSONArray jArr = c.getJSONArray("results");// results 배열 내에있는 길이 
     for(int j = 0; j<jArr.length(); j++) { // results 내부 반복
      c = jArr.getJSONObject(j);
      
      String vmenu = c.getString(mainMenu1);
      String vaddress = c.getString(newContentAddress1);
      String vphone = c.getString(mainTelephone1);
      String vopentime = c.getString(opentime1);
      String vholi = c.getString(holiday1);

      map = new HashMap<String, String>();
      
      map.put(mainMenu1, vmenu);
      map.put(newContentAddress1, vaddress);
      map.put(mainTelephone1, vphone);
      map.put(opentime1, vopentime);
      map.put(holiday1, vholi);
      list.add(map);

     }
    } catch (JSONException e)
    {
     e.printStackTrace();
    }
   }
   return null;
  }
 }

이건 url받아와서 list에 넣는코드구요..ㅜㅜ

for (int i = 0; i < list.size(); i++) {
    tv1.setText(str1);
    str1 = (String)list.get(i).get("mainMenu1");
   }

이렇게 실행하면 TextVIeq창이 변화가 없습니다.. ㅜㅜ 머가 문제일까요

 

 

코딩초보 (210 포인트) 님이 2013년 11월 11일 질문

2개의 답변

0 추천
tv1.setText(str1);
str1 = (String)list.get(i).get("mainMenu1");

순서바뀐듯

String str1 = (String)list.get(i).get("mainMenu1");

 tv1.setText(str1);
mamongs (4,050 포인트) 님이 2013년 11월 12일 답변
0 추천

for (int i = 0; i < list.size(); i++) {
    tv1.setText(str1);
    str1 = (String)list.get(i).get("mainMenu1");
}

list의 맨 마지막 값만 표시되는지 확인해 보세요.

포문과 모든 값들이 정상이더라도 값이 빠르게 휘리릭 바뀐게 아닐까..하는 생각이 드네요.

그렇다면 list의 맨 마지막 값만 표시되겟죠.

 

로그를 찍거나 디버깅을 해서 for문이 정상 수행 되는지 확인 하시던지..아니면 꼼수로

setText가 아니라 addText로 넣어보시면 보여지는 문자열이 바뀌는(set)게 아니라 쭉 이어지니까

그렇게 확인 해보시는건 어떨지.

ire (3,900 포인트) 님이 2013년 11월 12일 답변
...