JSON: یہ کیا ہے، ڈیٹا کا ڈھانچہ اور کام کرنے کا اصول

مصنف: IT Sectr اشاعت: 2026-03-08 مطالعے کا وقت: 8 منٹ

JSON (JavaScript Object Notation) ایک متن پر مبنی ڈیٹا کے تبادلے کا فارمیٹ ہے جو JavaScript آبجیکٹ نحو پر مبنی ہے۔ یہ ہر جگہ استعمال ہوتا ہے: REST APIs اور کنفیگریشن فائلوں سے لے کر ڈیٹابیسز اور موبائل ایپلیکیشنز میں ڈیٹا ذخیرہ کرنے تک۔ سرکاری JSON ویب سائٹ کے مطابق، فارمیٹ زبان سے آزاد ہے اور تقریباً تمام جدید پلیٹ فارمز کے ذریعے تعاون یافتہ ہے۔ JSON کلائنٹ اور سرور کے درمیان ڈیٹا کی منتقلی کا حقیقی معیار بن گیا ہے۔

اہم نکات

  • JSON — JavaScript نحو پر مبنی ساختہ ڈیٹا کے لیے ایک ہلکا پھلکا متن کا فارمیٹ
  • چھ ڈیٹا کی اقسام — سٹرنگ، نمبر، بولین، null، ارے اور آبجیکٹ کسی بھی ساخت کے لیے
  • آفاقیت — تمام پروگرامنگ زبانوں اور پلیٹ فارمز کے ذریعے تعاون یافتہ
  • REST API — ویب اور موبائل ایپلیکیشنز میں ڈیٹا کے تبادلے کا بنیادی فارمیٹ
  • انسانی پڑھنے کی اہلیت — سادہ نحو بغیر اوزاروں کے آسانی سے پڑھا اور ترمیم کیا جا سکتا ہے

JSON کیا ہے؟

JSON ساختہ ڈیٹا کی نمائندگی کے لیے ایک متن کا فارمیٹ ہے، جو JavaScript نحو پر مبنی ہے۔ JavaScript میں اس کی ابتدا کے باوجود، فارمیٹ مکمل طور پر زبان سے آزاد ہے — تمام مقبول پروگرامنگ زبانوں کے لیے پارسرز اور سیریلائزر موجود ہیں۔

JSON کی تاریخ 2000 کی دہائی کے اوائل میں شروع ہوئی، جب Douglas Crockford نے ڈیٹا کے تبادلے کے لیے JavaScript نحو کا ایک ذیلی سیٹ نکالا۔ 2013 میں، فارمیٹ کو ECMA-404 کے طور پر معیاری بنایا گیا، اور بعد میں ISO/IEC 21778:2017 کے طور پر۔ نام JavaScript Object Notation کا مخفف ہے۔

JSON کا بنیادی فائدہ اس کا کم سے کم نحو ہے۔ ڈیٹا کو بیان کرنے کے لیے صرف چھ اقسام استعمال ہوتی ہیں: سٹرنگ، نمبر، بولین، null، ارے اور آبجیکٹ۔ یہ ایپلیکیشنز میں استعمال ہونے والے کسی بھی ڈیٹا کے ڈھانچے کی نمائندگی کرنے کے لیے کافی ہے۔

JSON کہاں استعمال ہوتا ہے

  • REST API — سرور اور کلائنٹ کے درمیان درخواستوں اور جوابات کا بنیادی فارمیٹ
  • کنفیگریشن فائلیں — package.json، tsconfig.json، .prettierrc
  • ڈیٹابیسز — MongoDB، PostgreSQL (JSONB)، Firebase Firestore
  • موبائل ایپلیکیشنز — ترتیبات کا ذخیرہ، ڈیٹا کیشنگ
  • ویب ٹیکنالوجیز — WebSocket، Server-Sent Events، localStorage

JSON نحو اور ڈیٹا کی اقسام

JSON نحو انتہائی سادہ ہے: ڈیٹا کلید-قدر کے جوڑوں کے طور پر پیش کیا جاتا ہے، جہاں کلید ڈبل کوٹس میں ایک سٹرنگ ہے، اور قدر چھ بنیادی اقسام میں سے ایک ہے۔ آبجیکٹ گھنگریالے بریکٹوں میں بند ہوتے ہیں، ارے مربع بریکٹوں میں۔ سٹرنگز کو ڈبل کوٹس استعمال کرنا چاہیے؛ سنگل کوٹس کی اجازت نہیں ہے۔

JSON میں اعداد صحیح یا فلوٹنگ پوائنٹ، مثبت یا منفی، ایکسپونینشل نوٹیشن کے ساتھ ہو سکتے ہیں۔ بولین قدریں true اور false کے لٹرلز سے ظاہر کی جاتی ہیں، اور قدر کی عدم موجودگی null سے ظاہر کی جاتی ہے۔ ارے میں کسی بھی قسم کی قدروں کا ایک ترتیب شدہ سیٹ ہوتا ہے، جس میں نیسٹڈ ارے اور آبجیکٹ شامل ہیں۔

json
{
  "name": "JSON",
  "type": "text",
  "version": 2024,
  "flexible": true,
  "extensions": null,
  "languages": [
    "JavaScript",
    "Python",
    "Java"
  ],
  "nested": {
    "info": "نیسٹڈ سپورٹ"
  }
}
قسم مثال وضاحت
سٹرنگ “متن” ڈبل کوٹس میں، escape ترتیبوں کے ساتھ
نمبر 42 صحیح، فلوٹنگ پوائنٹ، ایکسپونینشل
بولین true true یا false — کوٹس کے بغیر
null null قدر کی عدم موجودگی
آبجیکٹ {} کلید-قدر جوڑوں کا غیر ترتیب شدہ سیٹ
ارے [] قدروں کی ترتیب شدہ فہرست

REST API میں JSON

JSON موبائل اور ویب ڈویلپمنٹ میں REST APIs کے لیے ڈیٹا کے تبادلے کا بنیادی فارمیٹ ہے۔ سرور جواب کے باڈی میں JSON بھیجتا ہے، کلائنٹ درخواست کے باڈی میں۔ JSON کے لیے معیاری Content-Type ہیڈر application/json ہے۔

جدید REST APIs سادہ فہرستوں سے لے کر اداروں کے درمیان تعلقات کے ساتھ پیچیدہ نیسٹڈ ڈھانچے تک، ہر قسم کے ڈیٹا کو منتقل کرنے کے لیے JSON کا استعمال کرتی ہیں۔ کلائنٹ لائبریریاں (جیسے JavaScript میں Axios یا Android پر Retrofit) خود بخود JSON کو سیریلائز اور ڈی سیریلائز کرتی ہیں، ڈویلپر کو دستی پارسنگ سے آزاد کرتی ہیں۔

REST APIs میں JSON کا ایک اہم فائدہ استفسار کے پیرامیٹرز کے ذریعے جزوی ڈیٹا کی منتقلی (جزوی جواب) کی صلاحیت ہے، نیز سرور پر اضافی درخواستوں کے بغیر نیسٹڈ وسائل کی حمایت ہے۔

موبائل پلیٹ فارمز پر JSON پارسنگ

JSON پارسنگ موبائل پلیٹ فارمز پر بلٹ ان ٹولز کا استعمال کرتے ہوئے کی جاتی ہے۔ Android Google کا Gson یا Square کا Moshi استعمال کرتا ہے، iOS JSONDecoder کے ساتھ Codable پروٹوکول استعمال کرتا ہے۔ ہر پلیٹ فارم JSON کو مقامی آبجیکٹ میں اور واپس تبدیل کرنے کے لیے آسان ٹولز فراہم کرتا ہے۔

Android (Kotlin) پر JSON

Android پر، مقبول طریقہ Gson یا Moshi کا استعمال کرتا ہے۔ بس @SerializedName تشریحات کے ساتھ ایک ڈیٹا کلاس کی وضاحت کریں اور ڈی سیریلائزیشن کے لیے fromJson کو کال کریں۔ لائبریری خود بخود JSON فیلڈ کے ناموں کو کلاس کی خصوصیات سے مماثل کرتی ہے۔

kotlin
import com.google.gson.Gson
import com.google.gson.annotations.SerializedName

data class User(
    @SerializedName("id") val id: Int,
    @SerializedName("name") val name: String,
    @SerializedName("email") val email: String
)

fun parseJson(jsonString: String): User {
    val gson = Gson()
    return gson.fromJson(jsonString, User::class.java)
}

iOS (Swift) پر JSON

iOS پر، JSONDecoder کے ساتھ بلٹ ان Codable پروٹوکول استعمال ہوتا ہے۔ ڈیٹا کا ڈھانچہ Codable کے مطابق struct کے طور پر اعلان کیا جاتا ہے، جس کے بعد JSON ایک سطر میں پارس ہو جاتا ہے۔ JSONEncoder ریورس سیریلائزیشن کرتا ہے — سرور کو بھیجنے کے لیے آبجیکٹ کو JSON میں تبدیل کرتا ہے۔

swift
import Foundation

struct User: Codable {
    let id: Int
    let name: String
    let email: String
}

func parseJSON(from data: Data) throws -> User {
    let decoder = JSONDecoder()
    return try decoder.decode(User.self, from: data)
}

JSON بمقابلہ XML: فارمیٹس کا موازنہ

JSON اور XML ساختہ ڈیٹا کی منتقلی کے دو اہم فارمیٹس ہیں۔ JSON سادگی اور کارکردگی میں جیتتا ہے، XML سختی اور توثیق میں۔ ان کے درمیان انتخاب پروجیکٹ کی ضروریات پر منحصر ہے: REST APIs زیادہ کثرت سے JSON استعمال کرتی ہیں، اسکیموں والی پیچیدہ دستاویزات XML استعمال کرتی ہیں۔

XML کو ہر عنصر کے لیے بند ہونے والے ٹیگز کی ضرورت ہوتی ہے، جس سے JSON کے مقابلے میں ڈیٹا کا سائز 2-3 گنا بڑھ جاتا ہے۔ ایک ہی وقت میں، XML نام کی جگہوں، XSD اسکیموں، صفات اور XSLT تبدیلی کو سپورٹ کرتا ہے، جو اسے دستاویز کے انتظام اور انٹرپرائز سسٹم انٹیگریشن کے کاموں کے لیے زیادہ طاقتور بناتا ہے۔

خصوصیت JSON XML
نحو کم سے کم، کلید-قدر ٹیگ پر مبنی، کھلنے اور بند ہونے والے ٹیگز
ڈیٹا کا سائز کمپیکٹ JSON سے 2-3 گنا بڑا
ڈیٹا کی اقسام چھ بنیادی اقسام صرف متن، اسکیموں کے ذریعے اقسام
توثیق کوئی بلٹ ان نہیں، JSON Schema کے ذریعے XSD — سخت اور پختہ
نام کی جگہیں کوئی نہیں مکمل نام کی جگہ کی حمایت
پارسنگ کی رفتار اعلی پیچیدگی کی وجہ سے کم

JSON کے ساتھ کام کرنے کی مثالیں

مثالیں موبائل ڈویلپمنٹ میں JSON کے ساتھ عام کارروائیوں کو ظاہر کرتی ہیں: API جوابات کو پارس کرنا، بھیجنے کے لیے JSON بنانا اور نیسٹڈ ڈھانچے پر کارروائی کرنا۔ ان نمونوں کو سمجھنا کسی بھی موبائل ایپلیکیشن ڈویلپر کے لیے ضروری ہے۔

کسی آبجیکٹ کو JSON میں سیریلائز کرنا

JavaScript میں، JSON.stringify ایک آبجیکٹ کو JSON سٹرنگ میں تبدیل کرتا ہے۔ دوسری دلیل انتخابی سیریلائزیشن کے لیے کلیدوں کی ایک ارے یا ایک ریپلیسر فنکشن ہو سکتی ہے۔ تیسری دلیل فارمیٹنگ کے لیے انڈینٹیشن سیٹ کرتی ہے۔

typescript
interface Order {
  id: string;
  items: OrderItem[];
  total: number;
  createdAt: string;
}

const order: Order = {
  id: 'ord_001',
  items: [{ product: 'phone', quantity: 2 }],
  total: 1599.98,
  createdAt: '2026-07-03T10:00:00Z'
};

const jsonString = JSON.stringify(order, null, 2);

نیسٹڈ JSON کو پارس کرنا

Moshi لائبریری کے ساتھ Kotlin میں، نیسٹڈ JSON آبجیکٹ کو نیسٹڈ ڈیٹا کلاسز کے ذریعے ہینڈل کیا جاتا ہے۔ @Json تشریح JSON فیلڈ کا نام بتاتی ہے اگر یہ کلاس پراپرٹی کے نام سے مختلف ہو۔ ارے کو عنصر کی قسم کے ساتھ List کے طور پر پیش کیا جاتا ہے۔

kotlin
import com.squareup.moshi.Moshi
import com.squareup.moshi.kotlin.reflect.KotlinJsonAdapterFactory

data class ApiResponse(
    val status: String,
    val data: List<Product>,
    val pagination: Pagination
)

data class Product(
    val id: Int,
    val title: String,
    val price: Double
)

data class Pagination(
    val page: Int,
    val total: Int
)

val moshi = Moshi.Builder()
    .add(KotlinJsonAdapterFactory())
    .build()

JSON Schema: ساخت کی توثیق

JSON Schema ایک JSON دستاویز کی ساخت کو بیان کرنے کے لیے ایک زبان ہے، جو XML کے لیے XSD کی طرح ہے۔ JSON Schema استعمال کرتے ہوئے، آپ لازمی فیلڈز، ڈیٹا کی اقسام، قدروں کی حدود، سٹرنگ پیٹرن اور نیسٹڈ ڈھانچے کی وضاحت کر سکتے ہیں۔ اسکیما کی توثیق ایپلیکیشن میں کارروائی سے پہلے ڈیٹا کی غلطیوں کا پتہ لگاتی ہے۔

JSON Schema REST APIs کی دستاویزات کے لیے OpenAPI (Swagger) میں، ان پٹ ڈیٹا کی توثیق کے فارمز میں اور جانچ میں بڑے پیمانے پر استعمال ہوتا ہے۔ اسکیما فائل خود ایک JSON دستاویز ہے، جو معیاری JSON پارسرز کو اسے پڑھنے کی اجازت دیتی ہے۔ تمام مقبول پروگرامنگ زبانوں کے لیے آن لائن توثیق کار اور لائبریریاں موجود ہیں۔

موبائل ڈویلپمنٹ میں، JSON Schema جانچ کے دوران سرور کے جوابات کی توثیق کرنے اور کنفیگریشن فائلوں کو چیک کرنے کے لیے استعمال ہوتا ہے۔ Android پر network-validator اور json-schema-validator جیسی لائبریریاں توثیق کو براہ راست ڈویلپمنٹ کے عمل میں شامل کرنے کی اجازت دیتی ہیں، ابتدائی مراحل میں غلطیوں کو روکتی ہیں۔

اکثر پوچھے گئے سوالات

JSON ڈیٹا کی کن اقسام کو سپورٹ کرتا ہے؟

JSON چھ اقسام کو سپورٹ کرتا ہے: سٹرنگ (ڈبل کوٹس میں)، نمبر (صحیح اور فلوٹنگ پوائنٹ)، بولین (true/false)، null، آبجیکٹ ({} میں کلید-قدر کے جوڑے) اور ارے ([] میں قدروں کی فہرست)۔ یہ ایپلیکیشنز میں کسی بھی ڈیٹا کے ڈھانچے کے لیے کافی ہے۔

کیا JSON میں کمنٹس استعمال کیے جا سکتے ہیں؟

نہیں، JSON معیار کمنٹس کو سپورٹ نہیں کرتا۔ اگر آپ کو کمنٹس کی ضرورت ہے، تو JSON5 (توسیع شدہ JSON) استعمال کریں یا ایک وضاحتی فیلڈ شامل کریں، مثال کے طور پر “_comment”: “وضاحت”۔ کچھ ٹولز، جیسے VS Code، کنفیگریشن JSON فائلوں میں کمنٹس کو سپورٹ کرتے ہیں، لیکن یہ ایک غیر معیاری توسیع ہے۔

PostgreSQL میں JSON، JSONB سے کیسے مختلف ہے؟

JSONB PostgreSQL میں JSON کے لیے ایک بائنری اسٹوریج فارمیٹ ہے۔ ٹیکسٹ JSON کے برعکس، JSONB پروسیسنگ میں تیز تر ہے، انڈیکسنگ (GIN انڈیکس) کو سپورٹ کرتا ہے اور کلید کی انفرادیت کو یقینی بناتا ہے۔ تاہم، JSONB شامل کردہ میٹا ڈیٹا کی وجہ سے ڈسک پر زیادہ جگہ لیتا ہے۔

JSON کی درستگی کیسے چیک کریں؟

فوری جانچ کے لیے JSONLint (jsonlint.com)، try-catch کے ساتھ JavaScript میں بلٹ ان JSON.parse()، یا IDE پلگ ان استعمال کریں۔ توثیق میں صحیح کوٹس، بریکٹ بند ہونے اور اقسام کی مطابقت کی جانچ شامل ہے۔ پیچیدہ اسکیموں کے لیے، JSON Schema Validator استعمال کریں۔

JSON فائل کا زیادہ سے زیادہ سائز کیا ہے؟

JSON تفصیلات میں کوئی حد نہیں ہے۔ عملی طور پر، سائز ڈیوائس میموری اور پارسر کی صلاحیتوں سے محدود ہے۔ موبائل ایپلیکیشنز کے لیے، فی جواب 1-2 MB سے تجاوز نہ کرنے کی سفارش کی جاتی ہے، اور بڑے ڈیٹا کے لیے پیجینیشن یا سٹریمنگ استعمال کریں۔

خلاصہ

  • JSON — ساختہ معلومات کے تبادلے کے لیے چھ ڈیٹا کی اقسام کے ساتھ ایک کم سے کم متن کا فارمیٹ
  • زبان سے آزادی — JSON پارسر تمام مقبول پروگرامنگ زبانوں کے لیے موجود ہیں
  • REST API موبائل ایپلیکیشنز میں درخواستوں اور جوابات کے لیے معیاری فارمیٹ کے طور پر JSON کا استعمال کرتی ہے
  • پارسنگ بلٹ ان ٹولز سے کی جاتی ہے: Android پر Gson/Moshi، iOS پر Codable
  • JSON XML سے 2-3 گنا زیادہ کمپیکٹ ہے، لیکن کارکردگی میں Protobuf سے کم ہے
  • انسانی پڑھنے کی اہلیت — نحو بغیر خصوصی اوزاروں کے پڑھنا اور ڈیبگ کرنا آسان ہے
  • JSON Schema — ساخت اور ڈیٹا کی اقسام کی توثیق کے لیے ایک اضافی ٹول

ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے

IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔

پروجیکٹ پر بحث کریں

مزید پڑھیں