gpt4 book ai didi

java - android 过滤json文件并保存到arraylist

转载 作者:行者123 更新时间:2023-12-02 06:39:49 25 4
gpt4 key购买 nike

如何将与下面的 -bnumber 和 -cnumber 对应的所有数据存储在数组列表中。

 {
"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,"
}
]
}
]
}
]
}

这是我的工作代码,但它仍然只存储了第一个 -bnumber 元素。

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

}
}

}

}


}

最佳答案

而不是使用 String.replaceAllString.substring获取 CHAPTER从 JSON 字符串,您可以将其转换为 JSONArray用于提取-cnumber,VERS或其他值。这样做:

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");

}
}

}

关于java - android 过滤json文件并保存到arraylist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19263913/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com