【问题标题】:how to get array of values as a values in json object in android如何在android中的json对象中获取值数组作为值
【发布时间】:2016-10-13 05:04:49
【问题描述】:
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 对象中获取章节

【问题讨论】:

    标签: android json xml


    【解决方案1】:

    将此代码放入您的 for 循环中

    JSONArray chap = chapInterData.getJSONArray("chapters1");
    for(int k =0;k<chap.length();k++)
    {
        String data=chap.getString(k);
        Log.e("data", " "+data);
    }
    

    在你想要的array中插入data

    【讨论】:

      【解决方案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'

      【讨论】:

        猜你喜欢
        • 2013-08-04
        • 1970-01-01
        • 1970-01-01
        • 2010-12-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多