دوره مجازی اندروید (جلسه 14): تبدیل اطلاعات Json به Data Model جاوا



visibility  
mode_comment   ۴۸

به نام خدا، سلام. در جلسه قبلی اطلاعات رو از سرور openweathermap گرفتیم، در این جلسه قصد داریم به شما نشان دهیم که چطور ساختار json را می توان به data model جاوا تبدیل کرد تا بتوان آن را در View های اندرویدی نمایش داد.

info توجه

این مطلب یک جلسه از آموزش برنامه نویسی اندروید می باشد و برای مشاهده آن باید در دوره ثبت نام کنید.

ثبت نام در آموزش برنامه نویسی اندروید

comment دیدگاه کاربران
Mr abbas replyپاسخ

چه خوب توضیح دادید 😀

hamidniakan replyپاسخ

سلام من فردا اکانت vip تمام میشه و به قسمت های بعد دسترسی ندارم چکار کنم .من تا الان 14 قسمت گرفتم بقیه برای ایمیل میشه یا چه طوری به دستم میرسه.؟ راستی اقا اوند که منتظر اموزش انگولار باشم .کی منتشر میکنید؟

لقمان آوند

سلام
برای دیدن دوره نیازی به vip ندارید و همیشه می تونید ببینی محتوای دوره ای که ثبت نام کردید.

ارسلان replyپاسخ

سلام مهندس مرسی کلی خیلی خوب دارید پیش میرید ^_^
ی سوال اینکه اگه ی اپ بخوایم داشته باشیم که دیتابیسش تو سرور باشه باید از backend سرویس استفاده کنیم؟ و اینکه چه backend سرویسی برای ذخیره داده رو پیشنهاد میکنید؟ و اصن اموزش میدین این مبحثو؟

سعید شاهینی

سلام، backend as a service یا baas زمانی می تونید استفاده کنید که نمی خواید درگیر مسائل سرور بشید و فقط می خواید اطلاعات خودتون رو بدون دونستن پیچیدگی های سمت سرور توی cloud ذخیره کنید. البته این سرویس های رایگان نیستن و هزینه های ماهانه دریافت می کنند. این مبحث توی این دوره آموزش داده نمی شه. برای اطلاعات بیشتر این مقاله رو مطالعه بفرمایید:

ارسلان

ممنون مهندس لینک مقاله یادتون رفت فقط.
بعد الان بخوایم ی اپ داشته باشیم که اطلاعات(مثل عکس و فیلم) رو از سرور بگیره باید چکار کنیم؟باید این سرویس هارو بخریم یا راه دگ ای هست؟

سعید شاهینی

سلام، لینک کدوم مقاله؟
در مورد سوالتون: دو راه دارید یا اینکه اطلاعات رو روی سرور خودتون ذخیره کنید و از اون بگیرید یا از سرویس های backend as a service استفاده کنید که پولی هستند.

سیدمحمدرضا طبیبیان replyپاسخ

با سلام . نمیتونم فایلو دانلود کنم . آیا سرور مشکل داره ؟

سعید شاهینی

سلام، من تست کردم مشکلی نیست! جلسه ی 14 رو نمی تونید دانلود کنید فقط؟

ali rahmanian replyپاسخ

استاد منتظر جلسه بعدی هستیم
عالی کار میکنید

سعید شاهینی

سلام، لطف دارید ممنون، یه خرده سر آموزش php زمان زیاد صرف شد، ایشالا تا فردا آخر شب منتشر می کنم.

ali rahmanian

استاد عزیز حتما کار با سنسورها و سخت افزار رو هم تو مطالبتون قرار بدید

سعید شاهینی

سلام، ممنون، اگه امکانش بود چشم

Mybc Ir replyپاسخ

سلام من این دوره رو خریدم . بهم 28 روز عضویت vip دادید حالا سوال من اینه که اگه تا 28 روز دیگه دوره تمام نشه که قطعا نمیشه تکلیف من چیه آیا باید دوره رو از اول بخرم یا نه میتونم مثل قبل دریافتش کنم و نیاز به vip نیست؟

وحید صالحی

خیر اکانت vip ارتباطی به دوره نداره و زمانی که به اتمام برسه باز هم شما به دوره هایی که درش ثبت نام کردید از جمله همین دوره دسترسی دارید و نیازی به خرید مجدد نیست

جعفر پیشدادی replyپاسخ

با سلام من در مرحله تست کدهای هواشناسی بر روب گوشی با استفاده از اینترنت وایرلس جواب دریافت می کنم ولی با استفاده از 3gنه …بایستی دسترسی داده شود ؟

سعید شاهینی

سلام، احتمالا دلیلش خطای timeout هست، timeout کتابخونه ی volley رو چقدر گذاشتید؟

جعفر پیشدادی

با سلام همون time out که شما قرار دادید هنور بیشترش هم کردم ولی با اینترنت سیمکارت جواب نداد بعد لینک api هم تست کردم خروجی نداد…در صورتیکه با تلگرام راحت ارسال ودریافت دارم

سعید شاهینی

سلام، لطفاً کدهای کلاسی که اطلاعات رو از سرور دریافت می کنید رو برام ایمیل کنید.

رامین رامین replyپاسخ

سلام . در مورد json array request در والی صحبتی نکردید؟؟
اگر بخوایم بدونیم تعداد آبجکت های جیسون دریافتیمون چند تاست باید چطوری اینکارو انجام داد ؟
با تشکر

سعید شاهینی

سلام، نه چون فرقی ندارن، jsonArray.length() تعداد آیتم های JsonArray رو برمی گردونه

esi rahimian replyپاسخ

سلام خسته نباشید میخواستم بدونم برای هر اموزش چقدر زمان پیش بینی میکنید که خودمون بدون منبع همچین چیزی بسازیم من کاملا متوجه میشم اموزشو ولی زود یادم میره و خودم با علم خودم هیچی نمیتونم بنویسم به نظرتون چیکار باید کنم من روزی یه جلسه رو یاد میگیرم ممنون منتظر جوابم خسته نباشید

سعید شاهینی

سلام، برای این موضوع بهتره با من تماس بگیرید تا بتونم به خوبی راهنماییتون کنم.

esi rahimian replyپاسخ

استاد جان ایمیلتونو میشه لطف کنید بدید باهاتون تماس داشته باشه

سعید شاهینی

saeedshahiniit@gmail.com

shahriar rad replyپاسخ

با سلام و درود خدمت شما
بنده یک سوالی داشتم
شما دراین قسمت اومدید و از اینترفیس استفاده کردید که به نظرم جای مناسبی نبود یا شایدم اونجوری که راجعبش صحبت کردین اشتباه اومد.
شما اومدید تابع getCourentWeather را در یک قسمت دیگری نوشتین تا ایجا درست و منطقی (یه جورایی حالت functional در php ) از اینجا به بعدش رو اومدید و گفتین اگه بخوایم شی بگیریم ازش کار بیهوده ای هست چون باید getter و اینا براش بنویسیم تا اینجا شم درست ولی بعدش خودتون تابع را به حالت public در آوردین و تازه یک خط دیگه هم بهش اضافه کردین به نام اینترفیس
خوب ما میومدیم تابع را به حالت public در می اوردیم پ فقط ازش شی میگرفتیم و در قسمت activity فرا خوانی میکردیم و شاید احتیاجی هم به implement کردن و نوشتن interface هم نبود

مگه اینکه از اول اینترفیس تعریف میکردیم و در اینجا استفاده می کردیم

سعید شاهینی

دلیل استفاده کردن از Interface اینه که ما نمی دونیم که چه زمانی دیتا از سرور دریافت می شه. چون نمی دونیم نمی توانیم از getter استفاده کنیم. چون مشخص نیست که کی باید متد getter رو صدا بزنیم.

مسعود معینی replyپاسخ

سلام
اون قسمتی که Context رو به عنوان پارامتر به newRequestQueue فرستادید میشد از Mainactivity.this استفاده کرد ؟
اگر آره فرقش با کاری که شما کردید یعنی گرفتن نمونه از Context در کلاس جاری چیه ؟

سعید شاهینی

Context کلاسی است که با استفاده از اون می شه Resource های پروژه دسترسی داشت. کلاس Activity رو اگر مشاهده کنید می بینید که کلاس Context رو extend کرده و درواقع اون کلاس رو به ارث برده. حالا شما می تونید به جای پاس دادن Context خود اکتیویتی رو پاس بدید یا یه نمونه از کلاس Context رو.

مسعود معینی replyپاسخ

و یک سوال دیگه
اگر فایل Json که داشتیم روش کار میکردیم یک تعدادی المان به صورت تکراری داشت. مثلا فرض کنید ده تا پست رو نمایش میداد که هر کدوم عنوان و توضیحات و … دارن.

اینجا باید کل عملیات Parse کردن رو بذاریم تو حلقه for و آخر هر حلقه یک بار شی مدل رو return کنیم ؟

سعید شاهینی

سلام٬ جلسات بعدی دقیقا این مورد رو آموزش دادم.

Mohammad Sheklabadi replyپاسخ

سلام استاد . پروژه رو یه بار خودم نوشتم ولی اصلا متدی که در main activity از interface پیاده سازی کردیم رو اجرا نمیکنه . به نظرتون مشکل میتونه از کجا باشه؟

سعید شاهینی

سلام، مشکل اینه که متد interface صدا زده نمی شه. باید break point بگذارید داخل جایی که متد interface باید صدا زده بشه

نرگس مجتهدزاده replyپاسخ

سلام
من پروژه رو دارم انجام میدم ولی می خوام جیسون آبجکت ها رو داخل ریسایکلرویو نمایش بدم
کار با ریسایکلرویو رو بلدم ولی تو این پروژه هر کار می کنم اکتیویتی خالی رو نشون میده و آیتم ها رو نمیاره
ممنون میشم راهنمایی بفرمایید

کیوان علی محمدی

باید مرحله به مرحله از زمان دریافت داده ها تا زمان نمایش لاگ کنید داده ها رو و مرحله ای که مشکل داره رو می تونید پیدا کنید.

نرگس مجتهدزاده

ممنون از پاسخ گویی بسیار سریع…!

کیوان علی محمدی

بابت این تاخیر عذرخواهی می کنیم. بعضا این کامنت ها دیده نمیشن. بازم ببخشید.

نرگس مجتهدزاده replyپاسخ

ببخشید گروهی توی تلگرام نیست که این پکیج رو ساپورت کنه ؟اینجوری عملا جواب سوالامون رو نمیگیریم…یا حداقل انجمنی باشه که بشه سوال ها رو دقیق تر پرسید و جواب گرفت

کیوان علی محمدی

گروه تلگرامی نداریم ولی انجامن فعال هستش.

مرتضی replyپاسخ

سلام خسته نباشید ، میشه در مورد قسمت 14 ، وقتی از اینترفس استفاده کردیم یکم توضیح بدید ؟؟

سعید شاهینی

سلام تلفنی تماس بگیرید و جایی که برای شما گنگ بود رو بیشتر توضیح بدید تا بتونم بهتر راهنمایی کنم. ممنون

Hamed Hardani replyپاسخ

سلام
میخواستم بدونم چطور میشه امکان انتخاب نام شهر رو به کاربر بدم؟
یعنی کاربری قبل از لمس کلید Send Request، توی یک EditText اسم شهرشو بنویسه و اطلاعات دریافتی مربوط به اون شهر باشن

سعید شاهینی

سلام، کافیه که یه EditText اضافه کنید و زمانی که می خواستید Request رو ارسال کنید، متن داخل EditText رو به عنوان QueryString به آدرس Api بدید. به عنوان مثال الان شهر لندن رو به صورت پیش فرض به سرور ارسال می کنه. حالا شما باید متن وارد شده کاربر رو جایگزین شهر لندن کنید.

محمد احمدی replyپاسخ

سلام خسته نباشید تشکر از توضیحات عالیتون در فیلمها
خواستم بپرسم که مثلا من میخوام اب و هوای تهران رو بگیرم باید تهران رو به اون قسمت از لینک که نوشته لندن اضاف کنم ؟ میشه ی توضیح کوچیک در این مورد بدین ؟ مرسی

سعید شاهینی

سلام خسته نباشید، بله فقط کافیه به جای london گزینه tehran رو بنویسید

xvision replyپاسخ

جهت یادآوری سوال 24 اردیبهشت من !
من کدها رو نوشتم اما موقع اجرا ظاهرا کدها به مشکل می خور چون اون پیام ” خطا در دریافت اطلاعات ” نشون داده می شه
چطور مشکل رو پیدا کنم ؟

سعید شاهینی

اون جلسه ای که مربوط به خطابابی هست رو مشاهده کنید، باید break point بگذارید رو متد onError و ببینید مقداری که به عنوان پارامتر متد onError اومده چیه

سعید شاهینی replyپاسخ

سلام اگه همچین مشکلی هست احتمالا باگه، به پشتیبانی تماس بگیرید اطلاع بدید که برطرف بشه ولی من اینجا همچین چیزی نمی بینم و پشتیبانی شما فعاله

ارسال نظرات

کاربر گرامی، امکان ارسال نظر و پشتیبانی برای دوره های مجازی فقط برای دانشجویان این دوره امکان پذیر می باشد.