एंड्रॉइड में JSONObject का उपयोग करके JSON डेटा पार्स करना
org.json.JSONObject एंड्रॉइड का बिल्ट-इन JSON पार्सर है — किसी थर्ड-पार्टी लाइब्रेरी की ज़रूरत नहीं। यह छोटे-मध्यम JSON स्ट्रक्चर्स के लिए सरल और प्रभावी है।
चरण 1: नया प्रोजेक्ट बनाएं
Android Studio → File → New → New Project → "Empty Activity" → Finish।
चरण 2: Layout (activity_main.xml)
एक सिंपल TextView जो पार्स्ड डेटा दिखाएगा:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:textSize="20sp"
android:textStyle="bold"
android:text="JSON डेटा यहां दिखेगा" />
</RelativeLayout>
चरण 3: MainActivity.java — JSON पार्सिंग लॉजिक
package com.example.jsonparsingdemo;
import android.os.Bundle;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import org.json.JSONException;
import org.json.JSONObject;
public class MainActivity extends AppCompatActivity {
private TextView textView;
// सैंपल JSON स्ट्रिंग — वास्तविक ऐप में यह नेटवर्क/फाइल से आएगा
private static final String JSON_STRING =
"{\"Employee\":{\"Name\":\"Niyaz\",\"Salary\":56000}}";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = findViewById(R.id.textView);
try {
// रूट ऑब्जेक्ट पार्स करें
JSONObject root = new JSONObject(JSON_STRING);
// नेस्टेड "Employee" ऑब्जेक्ट निकालें
JSONObject employee = root.getJSONObject("Employee");
// फील्ड्स निकालें
String name = employee.getString("Name");
int salary = employee.getInt("Salary");
// UI अपडेट करें
String output = "कर्मचारी नाम: " + name + "\nवेतन: ₹" + salary;
textView.setText(output);
} catch (JSONException e) {
e.printStackTrace();
textView.setText("JSON पार्सिंग त्रुटि: " + e.getMessage());
}
}
}
चरण 4: AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
package="com.example.jsonparsingdemo">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.JsonParsingDemo">
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
चलाएं और टेस्ट करें
- ऐप चलाएं।
- स्क्रीन पर दिखेगा:
कर्मचारी नाम: Niyaz
वेतन: ₹56000
🔍 JSONObject के मुख्य मेथड्स
| मेथड | विवरण | उदाहरण |
|---|---|---|
getString(key) | स्ट्रिंग मान लौटाता है | obj.getString("name") |
getInt(key) | इंटीजर मान लौटाता है | obj.getInt("age") |
getDouble(key) | डबल मान लौटाता है | obj.getDouble("price") |
getBoolean(key) | बूलियन मान लौटाता है | obj.getBoolean("active") |
getJSONObject(key) | नेस्टेड JSONObject लौटाता है | obj.getJSONObject("address") |
getJSONArray(key) | नेस्टेड JSONArray लौटाता है | obj.getJSONArray("items") |
has(key) | की मौजूद है या नहीं | obj.has("email") |
optString(key, default) | की न होने पर डिफ़ॉल्ट देता है | obj.optString("nickname", "N/A") |
⚠️ सामान्य गलतियाँ और समाधान
- JSONException: हमेशा
try-catchमें लपेटें। - Null मान:
optString(),optInt()आदि का उपयोग करें ताकि क्रैश न हो। - बड़े JSON: मेमोरी बचाने के लिए
GsonयाMoshiजैसी लाइब्रेरीज़ बेहतर हैं। - नेटवर्क से JSON: कभी भी मेन थ्रेड पर नेटवर्क कॉल न करें —
Coroutine,RxJavaयाAsyncTask(डिप्रिकेटेड) का उपयोग करें।
सारांश
JSONObject एंड्रॉइड में JSON पार्सिंग का सबसे सरल, जीरो-डिपेंडेंसी तरीका है। छोटे JSON के लिए यह परफेक्ट है। जटिल/बड़े डेटा के लिए Gson या Moshi (Kotlin के साथ) अधिक टाइप-सेफ और रखरखाव योग्य हैं।