hamidreza.kh 5 ارسال شده در ۱۲ آذر ۱۳۹۶ گزارش اشتراک گذاری ارسال شده در ۱۲ آذر ۱۳۹۶ سلام خسته نباشید دارم یه وب سرویس میگیرم برای خودم ، خب من یه سری اطلاعات شبیه به هم دارم ؛ در حال حاضر این اطلاعات رو جدا کردم و هرکدوم رو با یه ریکوئست میگیرم از سرور که خب این روش کار میکنه اما اصلا راه بهینه و بی نقصی نیست چون منطقی نیست برای گرفتن اطلاعات شبیه به هم از چندتا ریکوئست استفاده کرد نمونه اش هم اینه در حال حاضر من برای گرفتن هرکدوم از دسته های اطلاعاتم یه ریکوئست میزنم که اشتباهه ، حالا میخوام یه کاری کنم اونم اینکه این اطلاهات رو دسته بندی کنم و اون دسته بندی رو بگیرم ، چجوری؟ من میخوام داخل json array م یا حالا json object م فرقی نمیکنه ، همین مقدار هارو اما با دسته بندی بزارم یعنی یه چیزی شبیه به این : http://api.football-data.org/v1/competitions/445/leagueTable مثلا این جسون آرایی که الان دارم اطلاعات گروه A جام جهانی 2018 هستش ، میخوام این کلا توی یک دسته بندی json array قرار بگیره به نام groupA و به همین ترتیب دوباره گروه های بعدی کلا اموزشی در این رابطه هست؟ که بشه اطلاعات دریافتی رو دسته بندی کرد ، که بعدش برای گرفتنشون کلا فقط یه ریکوئست بزنم و لازم نباشه برای هرکدوم یک درخواست بدم و الکی سرور رو مشغول و سرعتشو پایین بیارم! نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
mehrdadmmb2 35 ارسال شده در ۱۳ آذر ۱۳۹۶ گزارش اشتراک گذاری ارسال شده در ۱۳ آذر ۱۳۹۶ (ویرایش شده) سلام شما یبار به url مورد نظر Request رو بفرست و response رو نگه دار داخل یه متغیر String بعد یه JsonArray بساز از اون متغیره. یه چیزی شبیه کد زیر: JSONArray jsonarray = new JSONArray(responseString); بعدش یه آرایه ی public بساز public String[] TestResult2; بعد طولش رو برابر اون آرایه ی قبلی بزار TestResult2 = new String[jsonarray.length()]; حالا با توجه به تعداد تو درتویی های خروجی json با استفاده از یه loop بشکاف و برو جلو تا به آخرین response ها برسی و هی object بساز تا برسی به تهش بعد میتونی مقادیر رو بخونی for (int i = 0; i < jsonarray.length(); i++) { JSONObject allObj; allObj = jsonarray.getJSONObject(i); TestResult2[i] = allObj.getString("playedGames"); } البته این کدی که نوشتم مال تهشه ولی ممکنه تو از چندتا حلقه استفاده کنی ویرایش شده ۱۳ آذر ۱۳۹۶ توسط mehrdadmmb2 2 نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
hamidreza.kh 5 ارسال شده در ۱۳ آذر ۱۳۹۶ مالک گزارش اشتراک گذاری ارسال شده در ۱۳ آذر ۱۳۹۶ در 5 ساعت قبل، mehrdadmmb2 گفته است : سلام شما یبار به url مورد نظر Request رو بفرست و response رو نگه دار داخل یه متغیر String بعد یه JsonArray بساز از اون متغیره. یه چیزی شبیه کد زیر: JSONArray jsonarray = new JSONArray(responseString); بعدش یه آرایه ی public بساز public String[] TestResult2; بعد طولش رو برابر اون آرایه ی قبلی بزار TestResult2 = new String[jsonarray.length()]; حالا با توجه به تعداد تو درتویی های خروجی json با استفاده از یه loop بشکاف و برو جلو تا به آخرین response ها برسی و هی object بساز تا برسی به تهش بعد میتونی مقادیر رو بخونی for (int i = 0; i < jsonarray.length(); i++) { JSONObject allObj; allObj = jsonarray.getJSONObject(i); TestResult2[i] = allObj.getString("playedGames"); } البته این کدی که نوشتم مال تهشه ولی ممکنه تو از چندتا حلقه استفاده کنی سپاسگذارم ، عالیه فقط یه نکته ، الان با این کار ما یه آرایه داریم رشته ای داریم از تموم محتویاتمون ، خب حالا من این آرایه testResult2 رو چجوری به json object بشکونم؟ یا چجوری محتویاتو ازش بکشم بیرون؟ نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
hamidreza.kh 5 ارسال شده در ۱۳ آذر ۱۳۹۶ مالک گزارش اشتراک گذاری ارسال شده در ۱۳ آذر ۱۳۹۶ یه نکته دیگه که هست برای این کیس من ، یه جور دیگه هم میشه حل کرد این مسئله رو ، فرض کنید من مثلا اطلاعاتمو به 3 دسته تقسیم کردم و میخوام مثلا اطلاعاتم توی 3 تا دسته ی 4 تایی قرار بگیرن خب قبلا به interface م فقط یه لیستی از آیتم هام میدادم(کلشون مثلا 12 تا باشه ) اما حالا به interface م 3 تا لیست از آیتم هام میدم بعد با for های متفاوت از response م 3 تا لیستم رو پر میکنم و میدم به interface م ! و مثلا میخوام هرکدوم از این لیستا رو توی یک فرگمنت بزارم مثلا 3 تا لیستمو توی 3 تا فرگمنت بزارم خب با این روش من در واقع برای هر 3 تا فرگمنتم همه لیستا (یعنی 3 تا لیستم ) رو میفرستم ولی توی هرکدوم فقط یک لیست رو میگیرم ! و 2 تای دیگه توی هر فرگمنت بلا استفاده میمونن! مثلا اقا لیست اول توی فرگمنت اول ، لیست دوم توی فرگمنت دوم و لیست سوم توی فرگمنت سوم ! فقط ایراد این کار اینه که الکی الکی همه لیستا برای هرکدوم از فرگمنتا ارسال میشن درحالی که من فقط نیاز به یکی از اونا دارم ن هر سه تاشون! روش شما آیا بهینه تر هستش ؟ نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
mehrdadmmb2 35 ارسال شده در ۱۳ آذر ۱۳۹۶ گزارش اشتراک گذاری ارسال شده در ۱۳ آذر ۱۳۹۶ درواقع شما باید ببینید به چه چیزی نیاز دارید بعضی وقتا این کار جواب میده و بعضی وقتا نه در خصوص اون سوال اولتون هم شما تا جایی که برسید به تهش باید از String هاتون JSONObject بسازید و هدر مورد نظر رو بیرون بکشید که بعد از این کار تمام محتویات داخل همون هدرس، بعد دوباره تبدیل به String میکنید و دوباره هدر بعدی رو بیرون میکشید و همینطور تا آخر 1 نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
hamidreza.kh 5 ارسال شده در ۱۴ آذر ۱۳۹۶ مالک گزارش اشتراک گذاری ارسال شده در ۱۴ آذر ۱۳۹۶ در 15 ساعت قبل، mehrdadmmb2 گفته است : درواقع شما باید ببینید به چه چیزی نیاز دارید بعضی وقتا این کار جواب میده و بعضی وقتا نه در خصوص اون سوال اولتون هم شما تا جایی که برسید به تهش باید از String هاتون JSONObject بسازید و هدر مورد نظر رو بیرون بکشید که بعد از این کار تمام محتویات داخل همون هدرس، بعد دوباره تبدیل به String میکنید و دوباره هدر بعدی رو بیرون میکشید و همینطور تا آخر سپاسگذارم از جواب هاتون ، بسیار استفاده کردم نه منظورم کلی هست چجوری از یک آرایه استرینگی json object بگیرم؟ متغییر indexOf ش اینکارو میکنه؟ یا چیز دیگه هست؟ چون خود ارایه استرینگی رو نمیشه مستقیم از getJsonObject کرد نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .