• 0
allofall

json الحصول على قيمة Array بداخل Object من ملف JSON

سؤال

بحاول أحصل على قيمة String من ملف JSON 

بس المشكله ان القيمة عباره عن:

Object > Array > String

و حاولت بأكتر من طريق بس الطريقه الاخيره حاسس ان ناقص فيها حاجه بسيطه او فى جزء مش عامله صح, الكود مرفق, و ارجو منكم توضيح اين المشكله.

انا بحاول اعمل iteration لل JsonObject  و بعديها بعمل مره كمان فوق الJsonArray علشان احصل على القيمه. 

أنا عامل فى التطبيق بتاعى 3 ملفات.

ملف MainActivity

و دا اللى عامل فيه Parsing وبقرأ فيه ملف الJSON و بقرأ منه القيم.

DetailActivity

دا اللى هحتاج فيه الString بتاعة videoID.

PostModel

القائمة اللى فيها ال getter  و ال setter و كل الStrings اللى بحتاج لها فى الملفين الاخرين.

JSON:

{  
   "status":"ok",
   "count":10,
   "count_total":184,
   "pages":19,
   "posts":[  
      {  },
      {  
         "id":2413,
		 ,
         "categories":[  
            {  
               "id":100,
               "slug":"logging",
               "title":"logging",
               "description":"",
               "parent":0,
               "post_count":1
            }
         ],
        "comments":[  
            {  
               "id":3564,
               "content":"<p>\u47 <\/p>\n",
               "parent":0
            }
         ],
         "comment_count":1,
         "thumbnail":"http:\/\/www.5.com\/wtent\g",
         "custom_fields":{  
            "dsq_thread_id":[  
               "2365140"
            ],
            "videoID":[  
               "--ffwf92jvDFy"
            ]
         },
         "thumbnail_images":{  
            "full":{  
               "url":"http:\/\/www.5.com\/jpg",
               "width":727,
               "height":454
            },
            "thumbnail":{  
               "url":"http:\/\/www.5.com\/wp-con50.jpg",
               "width":150,
               "height":150
            }
         }
      }
   ]
}

القيمة المطلوب الحصول عليها هى قيمة الــ videoID 

 

PostModel:

  private List<CategoryCast> categoryCastList;
    private List<VidCast> videoIDList
    private String videoID;
    private JSONObject obj;

    public JSONObject getObj() {
        return obj;
    }
    public void setObj(JSONObject obj) {
        this.obj = obj;
    }
    public String getVideoID() {
        return videoID;
    }
    public void setVideoID(String videoID) {
        this.videoID = videoID;
    }

	public List<VidCast> getvideoIDList() {
        return videoIDList;
    }
    public void setvideoIDList(List<VidCast> videoIDList) {
        this.videoIDList = videoIDList;
    }

    public List<CategoryCast> getCategoryCastList() {
        return categoryCastList;
    }
    public void setCategoryCastList(List<CategoryCast> categoryCastList) {
        this.categoryCastList = categoryCastList;
    }

	   public static class CategoryCast {
        private String name;
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
    }

    public static class VidCast {
        private String name;
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
    }

 

MainActivity:

                    List<PostModel.VidCast> videoIDList = new ArrayList<>();
                    for (int y = 0; y < finalObject.getJSONObject("custom_fields").length(); y++) {
                        PostModel.VidCast vidCast = new PostModel.VidCast();
                        for (int s = 0; s < finalObject.getJSONArray("videoID").length(); s++){
                             {
                              postModel.setVideoID(videoID);
                                 postModelList.add(postModel);
                            };
                        }
                        vidCast.setName(finalObject.getJSONObject("custom_fields").getJSONObject(y).get("0"));
                        videoIDList.add(vidCast);
                    }
                    postModel.setvideoIDList(videoIDList);
                    postModelList.add(postModel);


                    List<PostModel.CategoryCast> categoryCastList = new ArrayList<>();
                    for (int j = 0; j < finalObject.getJSONArray("categories").length(); j++) {
                        PostModel.CategoryCast categoryCast = new PostModel.CategoryCast();
                        categoryCast.setName(finalObject.getJSONArray("categories").getJSONObject(j).getString("title"));
                        categoryCastList.add(categoryCast);
                    }
                    postModel.setCategoryCastList(categoryCastList);
                    // adding the final object in the list
                    postModelList.add(postModel);
                }
                return postModelList;

DetailActivity:

            StringBuffer stringBuffer = new StringBuffer();
            for(PostModel.CategoryCast categoryCast : postModel.getCategoryCastList()){
                stringBuffer.append(categoryCast.getName() + ", ");
            }

            StringBuffer videoStringBuffer = new StringBuffer();
            for(PostModel.VidCast videoIDList : postModel.getvideoIDList()) {
                videoStringBuffer.append(videoStringBuffer.toString());
            }

دا اللى هحتاج فيه الString بتاعة videoID.

وشكراً

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

0 إجابة على هذا السؤال .

لاتوجد إجابات على هذا السؤال حتى الآن .

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .