0

how can i stored all the data corresponding to the -bnumber and -cnumber below in an arraylist.

 {
        "BIBLEBOOK": [
            {
                "-bnumber": "1",
                "-bname": "Genesis",
                "CHAPTER": [
                    {
                        "-cnumber": "1",
                        "VERS": [
                            {
                                "-vnumber": "1",
                                "#text": "Au commencement, Dieu créa les cieux et la terre."
                            },
                            {
                                "-vnumber": "2",
                                "#text": "La terre était informe et vide: il y avait des ténèbres à la surface de l'abîme, et l'esprit de Dieu se mouvait au-dessus des eaux."
                            },
                            {
                                "-vnumber": "3",
                                "#text": "Dieu dit: Que la lumière soit! Et la lumière fut."
                            }
                        ]
                    },
                    {
                        "-cnumber": "2",
                        "VERS": [
                            {
                                "-vnumber": "1",
                                "#text": "Ainsi furent achevés les cieux et la terre, et toute leur armée."
                            },
                            {
                                "-vnumber": "2",
                                "#text": "Dieu acheva au septième jour son oeuvre, qu'il avait faite: et il se reposa au septième jour de toute son oeuvre, qu'il avait faite."
                            }
                        ]
                    },
                    {
                        "-cnumber": "3",
                        "VERS": [
                            {
                                "-vnumber": "1",
                                "#text": "Moïse faisait paître le troupeau de Jéthro, son beau-père, sacrificateur de Madian; et il mena le troupeau derrière le désert, et vint à la montagne de Dieu, à Horeb."
                            },
                            {
                                "-vnumber": "2",
                                "#text": "L'ange de l'Eternel lui apparut dans une flamme de feu, au milieu d'un buisson. Moïse regarda; et voici, le buisson était tout en feu, et le buisson ne se consumait point."
                            },
                            {
                                "-vnumber": "3",
                                "#text": "Moïse dit: Je veux me détourner pour voir quelle est cette grande vision, et pourquoi le buisson ne se consume point."
                            }
                        ]
                    }
                ]
            },
            {
                "-bnumber": "2",
                "-bname": "Exodus",
                "CHAPTER": [
                    {
                        "-cnumber": "1",
                        "VERS": [
                            {
                                "-vnumber": "1",
                                "#text": "Voici les noms des fils d'Israël, venus en Egypte avec Jacob et la famille de chacun d'eux:"
                            },
                            {
                                "-vnumber": "2",
                                "#text": "Ruben, Siméon, Lévi, Juda,"
                            },
                            {
                                "-vnumber": "3",
                                "#text": "Issacar, Zabulon, Benjamin,"
                            }
                        ]
                    }
                ]
            }
        ]
    }

Here is my working code but still, it stored only the first -bnumber element.

JSONArray jObject=new JSONArray(biblebook);   
            biblebookLength = jObject.length();

        /*
         *  <BIBLEBOOK bnumber="1" bname="Genesis">
         */

        for (int arr_size=0;arr_size<biblebookLength;arr_size++){

            JSONObject bibleList= (JSONObject) jObject.get(arr_size);
            bnumber = bibleList.getString("-bnumber");
            bname = bibleList.getString("-bname");

            jsbnumber.SavePreferences("jsbnumber", bnumber);
            jsbname.SavePreferences("jsbname", bname);

            /*
             * Load Selected Books
             * Check if book index equals to booknumber
             * <CHAPTER cnumber="1">
             */

            if (bnumber.equalsIgnoreCase("2")){

                System.out.println("uniquenumber: "+bnumber);
                System.out.println("uniquenumber: "+bname);

                //String chapter =biblebook.replaceAll("\\[\\{\"-bnumber\":\"1\",\"-bname\":\"Genesis\",\"CHAPTER\":","\\{").replaceAll("\\[\\[", "\\[");
                chapter =biblebook.replaceAll("\\[\\{\"-bnumber\":\"1\",\"-bname\":\"Genesis\",\"CHAPTER\":","");


                //Remove first three and last two characters and concatenate result to make json object string.
                String rep_first_two_character = chapter.substring(0, chapter.length()-1);
                String current_string = rep_first_two_character +"]";

                JSONArray testArray=new JSONArray(current_string);   

                for (int count_cnumber=0;count_cnumber<testArray.length();count_cnumber++){

                    JSONObject json_cnumber = (JSONObject) testArray.get(count_cnumber);
                    String cnumx = json_cnumber.getString("-cnumber");

                    System.out.println("cnumx: "+chapter);

                    /*
                            <VERS vnumber="1">Au commencement, Dieu créa les cieux et la terre.</VERS>
                            <VERS vnumber="2">La terre était informe et vide: il y avait des ténèbres à la surface de l'abîme, et l'esprit de Dieu se mouvait au-dessus des eaux.</VERS>
                            <VERS vnumber="3">Dieu dit: Que la lumière soit! Et la lumière fut.</VERS>
                            <VERS vnumber="4">Dieu vit que la lumière était bonne; et Dieu sépara la lumière d'avec les ténèbres.</VERS>
                     */ 

                    if (cnumx.equalsIgnoreCase("1")){ //Change with counter

                        pref_cnumber.SavePreferences("cnumber", cnumx);
                        vers = json_cnumber.getString("VERS");
                        JSONArray jryVers=new JSONArray(vers);   
                        int vers_length=jryVers.length();

                        for (int vers=0;vers<vers_length;vers++){

                            JSONObject objVers= (JSONObject) jryVers.get(vers);
                            vnumber = objVers.getString("-vnumber");
                            xtext = objVers.getString("#text");

                            PostList.add(new bible (bnumber,bname, pref_cnumber.GetPreferences("cnumber"),vnumber,xtext));

                        }
                    }

                }

            }


        }
7
  • what happened when you get -cnumber array from json.? @Nikita Commented Oct 9, 2013 at 5:44
  • i get all -cnumber for only the first biblebook. when i changed -bnumber the data listed remains on first biblebook chapters Commented Oct 9, 2013 at 5:50
  • instead of using String.replaceAll and String.substring for getting CHAPTER from JSON String you can convert it to JSONArray for extracting -cnumber,VERS or other values Commented Oct 9, 2013 at 5:53
  • whats your biblebook length?> Commented Oct 9, 2013 at 5:54
  • @Nikita refer this stackoverflow.com/questions/17673057/… Commented Oct 9, 2013 at 5:58

1 Answer 1

2

instead of using String.replaceAll and String.substring for getting CHAPTER from JSON String you can convert it to JSONArray for extracting -cnumber,VERS or other values. do it as:

for (int arr_size=0;arr_size<biblebookLength;arr_size++){

    JSONObject bibleList= (JSONObject) jObject.get(arr_size);
    bnumber = bibleList.getString("-bnumber");
    bname = bibleList.getString("-bname");

    jsbnumber.SavePreferences("jsbnumber", bnumber);
    jsbname.SavePreferences("jsbname", bname);

     // get CHAPTER JSONArray
      JSONArray arr_chapter=bibleList.getJSONArray("CHAPTER");

       for (int i=0;i<arr_chapter.length();i++){
        JSONObject jsonobj_chapter= arr_chapter.get(i);

            // get -cnumber from CHAPTER object
             String str_cnumber=jsonobj_chapter.getString("-cnumber");

             // get VERS JSONArray from CHAPTER JSON object


              JSONArray arr_vers=jsonobj_chapter.getJSONArray("VERS");

               for (int j=0;j<arr_vers.length();j++){
               JSONObject jsonobj_vers= arr_vers.get(j);

                // get -vnumber from CHAPTER object
                String str_vnumber=jsonobj_chapter.getString("-vnumber");
                // get #text from CHAPTER object
                String str_text=jsonobj_chapter.getString("#text");

          } 
        }

 }
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.