在android中对类似的JSON值进行分组

时间:2018-03-13 11:45:56

标签: android json

我正在从数据库检索JSON值到android。

JSON如下

"checkFreeArray":
 [
 {"checkPaid":"Free","locName":"Area 1"},
 {"checkPaid":"Paid","locName":"Area 2"},
 {"checkPaid":"Paid","locName":"Area 1"},
 {"checkPaid":"Free","locName":"Area 2"},
 {"checkPaid":"Free","locName":"Area 3"}
 ]

我想将这些数据总结为

 (Area 1: 1 Paid,1 Free
  Area 2 : 1 Paid, 1 Free,
  Area 3: 1 Free) 
中的

在android中怎么办?

1 个答案:

答案 0 :(得分:-1)

您可以将此数据提取到Json数组中,并可添加条件以在新ArrayList中添加元素,如下所示。

JSONarray check=response.getJSonArray("checkFreeArray");
if(check!=null && check.length()>0){
for(int i=0;i<check.length();i++){
JsonObject json=check.getJsonObject(i);

if(json.getString("locName").equalsIgnoreCase("Area 1")){
                    if(json.getString("checkPaid").equalsIgnoreCase("free")){
                        loc_1_count_free++;
                    }
                    else{
                        loc_1_count_paid++;
                    }
                }
                else if(json.getString("locName").equalsIgnoreCase("Area 2")){
                    if(json.getString("checkPaid").equalsIgnoreCase("free")){
                        loc_2_free++;
                    }
                    else{
                        loc_2_paid++;
                    }

                }
                else if(json.getString("locName").equalsIgnoreCase("Area 3")){
                    if(json.getString("checkPaid").equalsIgnoreCase("free")){
                        loc_3_free_count++;
                    }
                    else{
                        loc_3_paid++;
                    }
                }

}
}
List<String> updated_array=new ArrayList<>();
        updated_array.add("Area 1:"+ loc_1_count_paid+" Paid, "+loc_1_count_free+" Free");
        updated_array.add("Area 2:"+ loc_2_paid+" Paid, "+loc_2_free+" Free");
        updated_array.add("Area 3:"+ loc_3_paid+" Paid, "+loc_3_free_count+" Free");
希望它有所帮助。