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

json 으로 데이터 가져온 데이터가 배열일 경우 질문입니다.

0 추천

{"result":"success”,"city":[{"do”:”서울특별시","list":[“강남구”,”강서구 “,”강동구”,”강북구"]},{"do”:"강원도","list":[“원주시 “,”속초시”,"춘천시"]}

위처럼 json 데이터가 넘어올경우 city 안에 do 와 list 가 같은 인덱스로 묶여서 오고 list 안에 배열로 또 묶여서 오면 저것을 어떻게 풀어줘야

할지 모르겠습니다. do 는 풀렸는데 list 푸는 방법좀 알려 주시면 감사하겠습니다.

JSONArray arry = jsonObject.getJSONArray("sigungu");

for(int i=0; i<arry.length(); i++)

{

BaseData d = new BaseData();

JSONObject obj = arry.getJSONObject(i);

if (obj.has("do"))

d.setString("do", obj.getString("do"));

if (obj.has("list"))

d.setString("list", obj.getString("list"));

result.mDataList.add(d);

 

DataList 에 추가 시켜 아래처럼 for 문을 돌려 do 는 빼내고 있습니다 그런데 list  는 어떻게 빼내야 할지 모르겠습니다. 

 

BaseData item = mDataList.get(i);

LOCATION1[i] = item.getString("do");

 

모두 좋은 주말 보내세요.

숀화이트 (3,310 포인트) 님이 2015년 5월 30일 질문

3개의 답변

+1 추천
 
채택된 답변

 여기 참고해보세요.

http://developer.android.com/reference/android/util/JsonReader.html

아니시면 인터넷에서 오픈소스들도 구할 수 있을 것 같습니다.

구글링으로 json deserialize android 하시면 다양한 답들을 구할 수 있을 것같습니다.

컴러기 (22,230 포인트) 님이 2015년 5월 30일 답변
숀화이트님이 2016년 2월 1일 채택됨
+1 추천
JSONObject responseJSON = new JSONObject(전달받은데이터);
if(responseJSON.getString("result").equals("success")) {
    JSONArray cityArray = new JSONArray(responseJSON.get("city").toString());
    for(int i = 0; i < cityArray.length(); i++) {
        JSONObject cityObject = new JSONObject(cityArray.get(i).toString());
        //

        JSONArray subArray = new JSONArray(cityObject.get("list").toString());
        for(int j = 0; j < subArray.length(); j++) {
            //
        }
    }
}

확인은 안해봣지만 이런식으로 하면 될 것 같네용...

taejun (7,240 포인트) 님이 2015년 6월 1일 답변
+1 추천

String Goo[];

ArrayList<String> Goo_list= new ArrayList<String>();
 
Goo_list.add(값 받아와서 저장시키는 어레이.get(i).getsubject());
Goo= Goo_list.toArray(new String[Goo_list.size()]);
 
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
Goo= new String[Goo_list.size()];
Goo_list.toArray(Goo);
 
정답은 아니지만 해당 소스에 맞게 커스텀하셔셔 해보시길바랍니다~

 

콜벳 (7,150 포인트) 님이 2015년 6월 1일 답변
...