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

JSON 입력하는게 이해가 잘 안되서 질문드려요.

0 추천

 

  JSONObject jsonObj = new JSONObject();
  JSONArray jsonArr = new JSONArray();
  JSONObject jsonArrObj = new JSONObject();
  
  try {
   int count=1;
   while(syncCursor.moveToNext()) { 
    jsonArrObj.put("arrivalTime",syncCursor.getString(3));
    jsonArrObj.put("testCount", count);
    count++;
    
    jsonArr.put(jsonArrObj);
    Log.d("test",jsonArr.toString());
    Log.d("test","====================");
   }
   jsonObj.put("id", id);
   jsonObj.put("data", jsonArr); 
   Log.d("test",jsonObj.toString());
   
  } catch (JSONException e) {
   e.printStackTrace();
  }

 

 

JSON을 이용하려고 하는데 제대로 저장이 안되는게 있어요. while문을 돌려가며 JSON Array에 put하고 있는데, 결과가 이상해서 로그를 찍어가며 테스트해보니 첨부한 사진처럼 계속 이전에 저장된 값이 갱신되고 있어요.

어디에서 잘못한건가요?

 

리히트 (1,450 포인트) 님이 2015년 2월 12일 질문

2개의 답변

+3 추천
 
채택된 답변
 JSONObject jsonObj = new JSONObject();
  JSONArray jsonArr = new JSONArray();
  JSONObject jsonArrObj = new JSONObject();
   
  try {
   int count=1;
   while(syncCursor.moveToNext()) { 
    JSONObject jsonArrObj = new JSONObject();
    jsonArrObj.put("arrivalTime",syncCursor.getString(3));
    jsonArrObj.put("testCount", count);
    count++;
     
    jsonArr.put(jsonArrObj);
    Log.d("test",jsonArr.toString());
    Log.d("test","====================");
   }
   jsonObj.put("id", id);
   jsonObj.put("data", jsonArr); 
   Log.d("test",jsonObj.toString());
    
  } catch (JSONException e) {
   e.printStackTrace();
  }
 
 while 문 안에서 jsonArr을 계속 새로 생성해줘야 할 것 같네요.
 
안_드루이드 (14,510 포인트) 님이 2015년 2월 12일 답변
리히트님이 2015년 2월 12일 채택됨
감사합니다. 이렇게 하니까 되네요
0 추천
JSON으로 만들기 전에 syncCursor 부터 디버깅해보셔요
nicehee (73,100 포인트) 님이 2015년 2월 12일 답변
...