2014-09-09 1 views
0

아직 초보자 인 안드로이드 프로그래머 ... 여러 배열을 구문 분석하려고합니다. 이것은 내 PHP 코드에서받은 JSON 데이터입니다.JSON 데이터에서 다중 배열 추출 중

[{ "mac": "00:12:17 : E1 : 6B : 07", "90 : 94 : E4 : 37 : FD : C4"}}, { "ap": [ "AP1" "AP3은"]}]

내 안드로이드 코드는 다른 목록으로 목록에 "맥"과 "AP"를 넣어 어떤 메신저 뭘하려고

if (j3data != null && j3data.length() > 0) { 

      JSONObject json_data; // creamos un objeto JSON 
      try { 
       json_data = j3data.getJSONObject(0); // leemos el primer 
                 // segmento 
                 // en nuestro caso el 
                 // unico 
       //ap = json_data.getString("ap"); //change please 


       JSONArray jArray = json_data.getJSONArray("mac"); 
        List<String> list = new ArrayList<String>(); 
        for (int i=0; i<jArray.length(); i++) { 
         list.add(jArray.getString(i)); 
         Log.e("Output",jArray.getString(i)); 

        } 

       //putting them into the list . a array 
       JSONArray j2Array = json_data.getJSONArray("ap"); 
       List<String> list2 = new ArrayList<String>(); 

        for (int i=0; i<j2Array.length(); i++) { 
         list2.add(j2Array.getString(i)); 
         Log.e("Output2",j2Array.getString(i)); 

        } 
        //Log.e("", list.get(0)); 

       Log.e("IndoorFragment ap --> ", ap); 

      } catch (JSONException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 

      return true; 
     } else { // json obtenido invalido verificar parte WEB. 
      Log.e("JSON3 ", "ERROR"); 
      return false; 
     } 

입니다. 그러나 현재 코드를 사용하면 "ap"값에는 "mac"값만 넣을 수 있습니다. 도와주세요! 덕분에

+0

이미 JSON을 deserialize하기위한 샘플 코드를 제공했습니다. Pls 참조 http://stackoverflow.com/questions/25241362/how-to-pull-json-data-using-java/25241668#25241668, http://stackoverflow.com/questions/25238866/parsing-json-data- 디스플레이 - 투 - 인 - 그리드보기/25239036 # 25239036. – nightfixed

+0

"ap"가 j3data.getJSONObject (1)에 있다고 생각합니다. not j3data.getJSONObject (0); – Yazan

답변

0

사용 울부 짖는 코드를 작정하여 JSON 데이터를 얻을 수 있습니다 :

   JSONArray jArray=new JSONArray(result); 
       for(int i=0;i<jArray.length();i++){ 
        if(i==0){ 
         String str1=jArray.getJSONObject(i).getJSONArray("mac").getString(0); 
         String str2=jArray.getJSONObject(i).getJSONArray("mac").getString(1); 
         Log.e("Mac Result", "First: "+str1+" Second: "+str2); 
        }else if(i==1){ 
         String str1=jArray.getJSONObject(i).getJSONArray("ap").getString(0); 
         String str2=jArray.getJSONObject(i).getJSONArray("ap").getString(1); 
         Log.e("Ap Result", "First: "+str1+" Second: "+str2); 
        } 
       } 

"결과가"당신의 JSON 배열 문자열입니다

.