JSON配列を配列リストCategoryと入れ子になったArraylist SubCategoryにループしようとしています。入れ子のforループ内のarraylistにオブジェクトを追加する
私の問題は、私のリストに最初のSubCategoryデータだけでなく、2番目のSubCategoryデータも入力されるということです。
例えば、私が欲しい:
1st category [Apple, Kiwi]
2nd category [Mango, Banana]
しかし、その代わりに、私は、
第二のカテゴリを取得するには、[Apple,Kiwi,Mango,Banana]
として取り込みます。
ArrayList<Category> categoryName=new ArrayList<Category>();
ArrayList<ArrayList<SubCategory>> subCategoryName = new ArrayList<ArrayList<SubCategory>>();
ArrayList<Integer> subCategoryCount = new ArrayList<Integer>();
ArrayList<SubCategory> subCategoryMatches = new ArrayList<SubCategory>();
try {
// Parsing json array response
// loop through each json object
for (int i = 0; i < response.length(); i++) {
JSONObject allCategory = (JSONObject) response
.get(i);
int id = allCategory.getInt("mcatid");
String description = allCategory.getString("description");
Category categoryDetails = new Category();
categoryDetails.setCatCode(id);
categoryDetails.setCatName(description);
category_name.add(categoryDetails);
//Log.i(TAG, String.valueOf(description));
JSONArray allSubCategory = allCategory
.getJSONArray("Subcatergory");
for (int j = 0; j < allSubCategory.length(); j++) {
JSONObject jsonObject = allSubCategory.getJSONObject(j);
String subCatId = jsonObject.getString("id");
String subDescription = jsonObject.getString("description");
// retrieve the values like this so on..
//Log.i(TAG, String.valueOf(subDescription));
SubCategory subCategoryMatch = new SubCategory();
subCategoryMatch.setSubCatName(subDescription);
subCategoryMatch.setSubCatCode(subCatId);
subCategoryMatches.add(subCategoryMatch);
}
subcategory_name.add(subCategoryMatches);
subCatCount.add(subCategoryMatches.size());
}
私のdownvoteではありませんが、私はこれも読んでいません。あなたの問題を私たちに明確に説明するのはあなた次第です。すべてのコードが本当に必要ですか?多分、そうではないかもしれませんが、いずれにしても問題がどこにあるのかを強調する必要があります。 –
あなたはすでにPOJOクラスを2つ持っているようです... GsonやJacksonを使ってこれをすべて解析してみませんか? –
[リンク](https://www.mkyong.com/java/how-do-convert-java-object-to-from-json-format-gson-api/) – MehmanBashirov