آموزش کار با JSON در اندروید
در دنیای مدرن توسعه اپلیکیشنهای موبایل، تبادل داده بین اپلیکیشن و سرور یکی از حیاتیترین بخشهاست. JSON که مخفف JavaScript Object Notation است، به عنوان محبوبترین استاندارد متنی برای انتقال دادهها شناخته میشود. این فرمت به دلیل وزن سبک، خوانایی بالا و استقلال از زبان برنامهنویسی، جایگزین قدرتمندی برای XML شده است. 📱اگر قصد دارید اپلیکیشنی بسازید که اطلاعات را از وبسایتها دریافت کند (مانند نرخ ارز، اخبار یا وضعیت آبوهوا)، تسلط بر کار با JSON در اندروید اولین قدم حرفهای شما خواهد بود. در این مقاله، علاوه بر مفاهیم پایه، یک پروژه عملی برای دریافت دادههای زنده آبوهوا را با هم اجرا میکنیم.
🌟 مزایای استفاده از JSON در توسعه اندروید
استفاده از JSON در پروژههای اندرویدی مزایای بیشماری دارد که مهمترین آنها عبارتند از:
- 🚀 سرعت بالا: به دلیل حجم کم، دادهها با سرعت بسیار بیشتری نسبت به XML منتقل میشوند.
- 🧠 خوانایی عالی: ساختار JSON برای انسان و ماشین به راحتی قابل درک است.
- 🛠️ پشتیبانی گسترده: تمامی زبانهای برنامهنویسی خانواده C (مانند جاوا و کاتلین) از آن پشتیبانی میکنند.
- 🌐 استاندارد وب: اکثر APIهای مدرن خروجی خود را به صورت JSON ارائه میدهند.
🏗️ ساختار اصلی دادههای JSON
قبل از کدنویسی، باید با سه مفهوم کلیدی در ساختار JSON آشنا شوید:
- Object (آبجکت): هر عبارتی که با علامت
{شروع و با}تمام شود. - Array (آرایه): مجموعهای از دادهها که با
[شروع و با]خاتمه مییابد. - Key-Value (کلید-مقدار): جفتهایی که با دو نقطه
:از هم جدا میشوند؛ مانند"name": "Tehran".
🛠️ کاربردهای JSON در اپلیکیشنهای موبایل
- ✅ دریافت اطلاعات از وبسرویسها (RESTful APIs).
- ✅ ذخیرهسازی تنظیمات کاربری در حافظه گوشی.
- ✅ انتقال دادههای پیچیده بین اکتیویتیهای مختلف.
- ✅ همگامسازی دیتابیس محلی با سرور ابری.
📝 مراحل ثبتنام در پنل توسعهدهندگان
برای دسترسی به برخی APIهای پیشرفته و مدیریت پروژههای خود، داشتن یک حساب کاربری الزامی است. برای شروع مسیر حرفهای خود، مراحل زیر را دنبال کنید:
- ابتدا به وبسایت p.api.ir مراجعه کنید.
- در بخش ثبتنام، مشخصات فردی و ایمیل خود را وارد نمایید.
- پس از تایید ایمیل، کلید اختصاصی (API Key) خود را دریافت کنید.
- از این کلید برای فراخوانی دادههای JSON در پروژههای اندرویدی استفاده کنید. 🔑
💻 پروژه عملی: ساخت اپلیکیشن هواشناسی
در این بخش، یاد میگیریم چگونه اطلاعات آبوهوای تهران را از API دریافت و در اپلیکیشن نمایش دهیم.
۱. متد دریافت داده (Stream) از URL
ابتدا باید اتصالی با سرور برقرار کرده و دادهها را به صورت خام دریافت کنیم:
InputStream getStreamFromURL(String urlString, String method) {
try {
URL url = new URL(urlString);
HttpURLConnection huc = (HttpURLConnection) url.openConnection();
huc.setReadTimeout(10000);
huc.setConnectTimeout(15000);
huc.setRequestMethod(method);
huc.setDoInput(true);
huc.connect();
return huc.getInputStream();
} catch (Exception e) {
return null;
}
}
۲. تبدیل Stream به رشته قابل فهم (String)
دادههای دریافتی باید به فرمت متنی تبدیل شوند تا بتوانیم آنها را پردازش کنیم:
String streamToString(InputStream is) {
BufferedReader br = new BufferedReader(new InputStreamReader(is));
StringBuilder result = new StringBuilder();
String line;
try {
while ((line = br.readLine()) != null) {
result.append(line).append("\n");
}
} catch (IOException e) { e.printStackTrace(); }
return result.toString();
}
۳. تجزیه یا Parse کردن JSON
در این مرحله، مقادیر مورد نظر (مانند دمای هوا و سرعت باد) را از رشته اصلی استخراج میکنیم:
void parseJSON(String JSONString) {
try {
JSONObject jo = new JSONObject(JSONString);
// استخراج توصیف وضعیت هوا از آرایه
JSONArray weatherArray = jo.getJSONArray("weather");
weatherResult = weatherArray.getJSONObject(0).getString("description");
// استخراج سرعت باد
windSpeedResult = jo.getJSONObject("wind").getDouble("speed");
// استخراج رطوبت
humidityResult = jo.getJSONObject("main").getInt("humidity");
} catch (JSONException e) { e.printStackTrace(); }
}
۴. اجرای عملیات در پسزمینه (AsyncTask)
از آنجایی که ارتباطات شبکه زمانبر هستند، نباید در Thread اصلی اندروید اجرا شوند. ما از AsyncTask برای این کار استفاده میکنیم تا اپلیکیشن ما “هنگ” نکند. 🚀

⚠️ نکات امنیتی و دسترسیها
فراموش نکنید که برای برقراری ارتباط با اینترنت، حتماً باید مجوز زیر را در فایل AndroidManifest.xml قرار دهید:
<uses-permission android:name="android.permission.INTERNET"/>✅قدم نهایی
کار با JSON در اندروید یکی از مهارتهای پایه و ضروری برای هر توسعهدهنده است. در این مقاله آموختیم که چگونه دادهها را از سرور فراخوانی کرده، آنها را به رشته تبدیل کنیم و در نهایت با استفاده از کلاسهای JSONObject و JSONArray دادههای مورد نظر را استخراج نماییم.
آیا در پیادهسازی پروژه هواشناسی به مشکلی برخوردید؟ نظرات و سوالات خود را در بخش دیدگاهها بنویسید تا متخصصان ما شما را راهنمایی کنند! 👇
