Example 1: learn json

ArrayList<Countries> listCountries = new ArrayList<>();//country
        ArrayList<Detail> listDetails = new ArrayList<>();//listDetail
        ArrayList<Detail> listSub =  new ArrayList<>();//List Sub

        Countries countries = new Countries();
        countries.setId("1");
        countries.setName("Sim");
        countries.setGender("M");
        countries.setCountry("khompong Chhnang");
        countries.setPostalCode("225566");
        //Add Countries object to ArrayList
        listCountries.add(countries);

        Detail detail =  new Detail();
        detail.setPhone("09659694146");
        detail.setAddress("11H");
        //Add Detail object to ArrayList
        listDetails.add(detail);

        Detail detail1 =  new Detail();
        detail1.setPhone("2222");
        detail1.setAddress("tttt2");
        listSub.add(detail1);

        JSONObject jsonObject_sub = new JSONObject();
        JSONArray jsonArray_sub = new JSONArray();
        for (int i = 0; i < listSub.size(); i++){
            try {
                jsonObject_sub.put("Phone",listSub.get(i).getPhone());
                jsonObject_sub.put("Address",listSub.get(i).getAddress());
                jsonArray_sub.put(jsonObject_sub);
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }

        JSONObject jb = new JSONObject();
        JSONArray jsonArray = new JSONArray();
        for (int i = 0; i<listDetails.size(); i++){
            //convert to JSONObject
            try {
                jb.put("Address",listDetails.get(i).getAddress());
                jb.put("Phone",listDetails.get(i).getPhone());
                jb.put("sub_detail",jsonArray_sub);
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
        //convert JSONObject to JSONArray
        for (int i = 0; i < 3; i++){
            jsonArray.put(jb);
        }


        JSONObject jsonObject = new JSONObject();
        for (int i=0; i<listCountries.size(); i++){
            try {
                //convert to JSONObject
                jsonObject.put("id",listCountries.get(i).getId());
                jsonObject.put("name",listCountries.get(i).getName());
                jsonObject.put("gender",listCountries.get(i).getGender());
                //put JSONArray into JSONObject
                jsonObject.put("detail",jsonArray);
                jsonObject.put("country",listCountries.get(i).getCountry());
                jsonObject.put("postal_code",listCountries.get(i).getPostalCode());
            } catch (JSONException e) {
                e.printStackTrace();
            }
            Log.d(">>>", "jsonObject: "+jsonObject);
        }


================Output===========================================================
  {"id":"1","name":"Sim","gender":"M","detail":[{"Address":"11H","Phone":"09659694146","sub_detail":[{"Phone":"2222","Address":"tttt2"}]},{"Address":"11H","Phone":"09659694146","sub_detail":[{"Phone":"2222","Address":"tttt2"}]},{"Address":"11H","Phone":"09659694146","sub_detail":[{"Phone":"2222","Address":"tttt2"}]}],"country":"khompong Chhnang","postal_code":"225566"}

Example 2: how to set up a json file

{
	"name" : "data"
}