#android #json #xml
#Android #json #xml
Вопрос:
String finalData = "{"Books":[{"name":"Genesis","chapters1":["Chapter No:1","Chapter No:2","Chapter No:3","Chapter No:4","Chapter No:5","Chapter No:6","Chapter No:7","Chapter No:8","Chapter No:9","Chapter No:10"]}]};
private void ChaptersData(String finalData) {
try {
JSONObject mainchapter=new JSONObject(finalData);
JSONArray chapterdata=mainchapter.getJSONArray("Books");
chapterList=new String[chapterdata.length()];
for (int j=0;j<=chapterdata.length();j ){
JSONObject chapInterData=(JSONObject) chapterdata.get(j);
String chapter=chapInterData.getString(0);
Log.e("Chapter", " " chapter);
chapterList[j]=chapter;
}
} catch (JSONException e) {
e.printStackTrace();
}
}
теперь, как я могу получить главы из объекта json
Ответ №1:
поместите этот код в цикл for
JSONArray chap = chapInterData.getJSONArray("chapters1");
for(int k =0;k<chap.length();k )
{
String data=chap.getString(k);
Log.e("data", " " data);
}
вставьте data
в нужный array
Ответ №2:
Я изменил ваш код, используя библиотеку Google Gson, которая является более надежной и простой в использовании для синтаксического анализа json:
String finalData = "{"Books":[{"name":"Genesis","chapters":["Chapter No:1","Chapter No:2","Chapter No:3","Chapter No:4","Chapter No:5","Chapter No:6","Chapter No:7","Chapter No:8","Chapter No:9","Chapter No:10"]}]}";
private void ChaptersData(String finalData) {
Gson gson = new Gson();
BookModel bookModel = gson.fromJson(finalData, BookModel.class);
BookModel.Books[] books = bookModel.getBooks();
for (BookModel.Books book : books) {
String[] chapters = book.getChapters();
for (String chapter : chapters) {
Log.e("Chapter", " " chapter);
}
}
}
class BookModel {
private Books[] Books;
public Books[] getBooks() {
return Books;
}
class Books {
private String name;
private String[] chapters;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String[] getChapters() {
return chapters;
}
public void setChapters(String[] chapters1) {
this.chapters = chapters1;
}
}
}
добавьте это в тег зависимости build.gradle вашего приложения:
скомпилируйте ‘com.google.code.gson:gson:2.7’