从JSON数据中提取多个数组

时间:2014-09-09 07:51:24

标签: java android json

我仍然是新手android程序员...我试图解析多个数组。 这是我从我的PHP代码收到的JSON数据。

[{" MAC":[" 00:12:17:E1:6B:07"" 90:94:E4:37:FD:C4&# 34;]},{" AP":[" AP1"" AP3"]}]

我的安卓代码是

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;
        }

我想要做的就是把&#34; mac&#34;到列表和&#34; ap&#34;进入另一个名单。但是使用我当前的代码,它只会放置&#34; mac&#34;值而不是&#34; ap&#34;价值观。请帮忙!非常感谢

1 个答案:

答案 0 :(得分: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);
                    }
                }
  

其中“result”是你的json数组字符串。