JSON (JavaScript Object Notation) एक टेक्स्ट-आधारित डेटा इंटरचेंज प्रारूप है जो JavaScript ऑब्जेक्ट सिंटैक्स पर आधारित है। इसका उपयोग सर्वव्यापी है: REST API और कॉन्फ़िगरेशन फ़ाइलों से लेकर डेटाबेस और मोबाइल एप्लिकेशन में डेटा संग्रहण तक। आधिकारिक JSON वेबसाइट के अनुसार, प्रारूप भाषा-स्वतंत्र है और लगभग सभी आधुनिक प्लेटफ़ॉर्म द्वारा समर्थित है। JSON क्लाइंट और सर्वर के बीच डेटा स्थानांतरण के लिए डी-फैक्टो मानक बन गया है।
मुख्य बिंदु
JSON एक टेक्स्ट प्रारूप है जो संरचित डेटा को प्रस्तुत करने के लिए है, जो JavaScript सिंटैक्स पर आधारित है। JavaScript में इसकी उत्पत्ति के बावजूद, प्रारूप पूरी तरह से भाषा-स्वतंत्र है — सभी लोकप्रिय प्रोग्रामिंग भाषाओं के लिए पार्सर और सीरियलाइज़र मौजूद हैं।
JSON का इतिहास 2000 के दशक की शुरुआत में शुरू हुआ, जब डगलस क्रॉकफ़ोर्ड ने डेटा आदान-प्रदान के लिए JavaScript सिंटैक्स का एक उपसमूह निकाला। 2013 में, प्रारूप को ECMA-404 के रूप में मानकीकृत किया गया, और बाद में ISO/IEC 21778:2017 के रूप में। नाम JavaScript Object Notation का संक्षिप्त रूप है।
JSON का मुख्य लाभ इसका न्यूनतम सिंटैक्स है। डेटा का वर्णन करने के लिए केवल छह प्रकारों का उपयोग किया जाता है: स्ट्रिंग, संख्या, बूलियन, null, ऐरे और ऑब्जेक्ट। यह एप्लिकेशन में उपयोग की जाने वाली किसी भी डेटा संरचना को प्रस्तुत करने के लिए पर्याप्त है।
JSON सिंटैक्स अत्यंत सरल है: डेटा कुंजी-मूल्य जोड़े के रूप में प्रस्तुत किया जाता है, जहाँ कुंजी दोहरे उद्धरणों में एक स्ट्रिंग है, और मान छह बुनियादी प्रकारों में से एक है। ऑब्जेक्ट घुंघराले कोष्ठकों में संलग्न होते हैं, ऐरे वर्गाकार कोष्ठकों में। स्ट्रिंग्स को दोहरे उद्धरणों का उपयोग करना चाहिए; एकल उद्धरणों की अनुमति नहीं है।
JSON में संख्याएँ पूर्णांक या फ़्लोटिंग-पॉइंट, धनात्मक या ऋणात्मक, घातीय संकेतन के साथ हो सकती हैं। बूलियन मान true और false शाब्दिक द्वारा दर्शाए जाते हैं, और मान की अनुपस्थिति null द्वारा। ऐरे में किसी भी प्रकार के मानों का एक क्रमबद्ध सेट होता है, जिसमें नेस्टेड ऐरे और ऑब्जेक्ट शामिल हैं।
{
"name": "JSON",
"type": "text",
"version": 2024,
"flexible": true,
"extensions": null,
"languages": [
"JavaScript",
"Python",
"Java"
],
"nested": {
"info": "नेस्टेड समर्थन"
}
}
| प्रकार | उदाहरण | विवरण |
|---|---|---|
| स्ट्रिंग | “पाठ” |
दोहरे उद्धरणों में, एस्केप अनुक्रमों के साथ |
| संख्या | 42 |
पूर्णांक, फ़्लोटिंग-पॉइंट, घातीय |
| बूलियन | true |
true या false — बिना उद्धरणों के |
| null | null |
मान की अनुपस्थिति |
| ऑब्जेक्ट | {} |
कुंजी-मूल्य जोड़ियों का अक्रमिक सेट |
| ऐरे | [] |
मानों की क्रमबद्ध सूची |
JSON मोबाइल और वेब डेवलपमेंट में REST API के लिए प्राथमिक डेटा इंटरचेंज प्रारूप है। सर्वर प्रतिक्रिया निकाय में JSON भेजता है, क्लाइंट अनुरोध निकाय में। JSON के लिए मानक Content-Type हेडर application/json है।
आधुनिक REST API सभी प्रकार के डेटा को संचारित करने के लिए JSON का उपयोग करते हैं: सरल सूचियों से लेकर संस्थाओं के बीच संबंधों के साथ जटिल नेस्टेड संरचनाओं तक। क्लाइंट लाइब्रेरी (जैसे JavaScript में Axios या Android पर Retrofit) स्वचालित रूप से JSON को सीरियलाइज़ और डिसीरियलाइज़ करती हैं, डेवलपर को मैनुअल पार्सिंग से मुक्त करती हैं।
REST API में JSON का एक महत्वपूर्ण लाभ क्वेरी पैरामीटर के माध्यम से आंशिक डेटा स्थानांतरण (आंशिक प्रतिक्रिया) की क्षमता है, साथ ही सर्वर पर अतिरिक्त अनुरोधों के बिना नेस्टेड संसाधनों का समर्थन भी है।
JSON पार्सिंग मोबाइल प्लेटफ़ॉर्म पर अंतर्निहित उपकरणों का उपयोग करके किया जाता है। Android Google के Gson या Square के Moshi का उपयोग करता है, iOS JSONDecoder के साथ Codable प्रोटोकॉल का उपयोग करता है। प्रत्येक प्लेटफ़ॉर्म JSON को मूल ऑब्जेक्ट में और वापस बदलने के लिए सुविधाजनक उपकरण प्रदान करता है।
Android पर, लोकप्रिय दृष्टिकोण Gson या Moshi का उपयोग करता है। बस @SerializedName एनोटेशन के साथ एक डेटा क्लास परिभाषित करें और डिसीरियलाइज़ेशन के लिए fromJson कॉल करें। लाइब्रेरी स्वचालित रूप से JSON फ़ील्ड नामों को क्लास गुणों से मैप करती है।
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 पर, JSONDecoder के साथ अंतर्निहित Codable प्रोटोकॉल का उपयोग किया जाता है। डेटा संरचना को Codable के अनुरूप एक struct के रूप में घोषित किया जाता है, जिसके बाद JSON एक पंक्ति में पार्स किया जाता है। JSONEncoder रिवर्स सीरियलाइज़ेशन करता है — सर्वर पर भेजने के लिए ऑब्जेक्ट को JSON में बदलता है।
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 कठोरता और सत्यापन में। उनके बीच चुनाव परियोजना की आवश्यकताओं पर निर्भर करता है: REST API अधिक बार JSON का उपयोग करते हैं, स्कीमा वाले जटिल दस्तावेज़ XML का उपयोग करते हैं।
XML को प्रत्येक तत्व के लिए क्लोज़िंग टैग की आवश्यकता होती है, जिससे JSON की तुलना में डेटा का आकार 2-3 गुना बढ़ जाता है। साथ ही, XML नेमस्पेस, XSD स्कीमा, विशेषताएँ और XSLT रूपांतरण का समर्थन करता है, जो इसे दस्तावेज़ प्रबंधन और उद्यम सिस्टम एकीकरण कार्यों के लिए अधिक शक्तिशाली बनाता है।
| विशेषता | JSON | XML |
|---|---|---|
| सिंटैक्स | न्यूनतम, कुंजी-मूल्य | टैग-आधारित, खोलने और बंद करने वाले टैग |
| डेटा आकार | कॉम्पैक्ट | JSON से 2-3 गुना बड़ा |
| डेटा प्रकार | छह बुनियादी प्रकार | केवल टेक्स्ट, स्कीमा के माध्यम से प्रकार |
| सत्यापन | कोई अंतर्निहित नहीं, JSON Schema के माध्यम से | XSD — सख्त और परिपक्व |
| नेमस्पेस | कोई नहीं | पूर्ण नेमस्पेस समर्थन |
| पार्सिंग गति | उच्च | जटिलता के कारण कम |
उदाहरण मोबाइल डेवलपमेंट में JSON के साथ विशिष्ट संचालन प्रदर्शित करते हैं: API प्रतिक्रियाओं का पार्सिंग, भेजने के लिए JSON बनाना और नेस्टेड संरचनाओं का प्रसंस्करण। इन पैटर्न को समझना किसी भी मोबाइल एप्लिकेशन डेवलपर के लिए आवश्यक है।
JavaScript में, JSON.stringify एक ऑब्जेक्ट को JSON स्ट्रिंग में बदलता है। दूसरा तर्क चयनात्मक सीरियलाइज़ेशन के लिए कुंजियों की एक ऐरे या एक रिप्लेसर फ़ंक्शन हो सकता है। तीसरा तर्क फ़ॉर्मेटिंग के लिए इंडेंटेशन सेट करता है।
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);
Moshi लाइब्रेरी के साथ Kotlin में, नेस्टेड JSON ऑब्जेक्ट को नेस्टेड डेटा क्लासेस के माध्यम से संभाला जाता है। @Json एनोटेशन JSON फ़ील्ड नाम निर्दिष्ट करता है यदि यह क्लास गुण नाम से भिन्न होता है। ऐरे को तत्व प्रकार के साथ List के रूप में दर्शाया जाता है।
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 दस्तावेज़ की संरचना का वर्णन करने के लिए एक भाषा है, जो XML के लिए XSD के समान है। JSON Schema का उपयोग करके, आप आवश्यक फ़ील्ड, डेटा प्रकार, मान श्रेणियाँ, स्ट्रिंग पैटर्न और नेस्टेड संरचना निर्दिष्ट कर सकते हैं। स्कीमा सत्यापन एप्लिकेशन में प्रसंस्करण से पहले डेटा त्रुटियों का पता लगाता है।
JSON Schema का व्यापक रूप से REST API के दस्तावेज़ीकरण के लिए OpenAPI (Swagger) में, इनपुट डेटा सत्यापन फ़ॉर्म में और परीक्षण में उपयोग किया जाता है। स्कीमा फ़ाइल स्वयं एक JSON दस्तावेज़ है, जो मानक JSON पार्सर को इसे पढ़ने की अनुमति देती है। सभी लोकप्रिय प्रोग्रामिंग भाषाओं के लिए ऑनलाइन सत्यापनकर्ता और लाइब्रेरी मौजूद हैं।
मोबाइल डेवलपमेंट में, JSON Schema का उपयोग परीक्षण के दौरान सर्वर प्रतिक्रियाओं को सत्यापित करने और कॉन्फ़िगरेशन फ़ाइलों की जाँच करने के लिए किया जाता है। Android पर network-validator और json-schema-validator जैसी लाइब्रेरी सत्यापन को सीधे डेवलपमेंट प्रक्रिया में एम्बेड करने की अनुमति देती हैं, शुरुआती चरणों में त्रुटियों को रोकती हैं।
अक्सर पूछे जाने वाले प्रश्न
JSON छह प्रकारों का समर्थन करता है: स्ट्रिंग (दोहरे उद्धरणों में), संख्या (पूर्णांक और फ़्लोटिंग-पॉइंट), बूलियन (true/false), null, ऑब्जेक्ट ({} में कुंजी-मूल्य जोड़े) और ऐरे ([] में मानों की सूची)। यह एप्लिकेशन में किसी भी डेटा संरचना के लिए पर्याप्त है।
नहीं, JSON मानक टिप्पणियों का समर्थन नहीं करता है। यदि आपको टिप्पणियों की आवश्यकता है, तो JSON5 (विस्तारित JSON) का उपयोग करें या एक विवरण फ़ील्ड जोड़ें, उदाहरण के लिए “_comment”: “स्पष्टीकरण”। कुछ उपकरण, जैसे VS Code, कॉन्फ़िगरेशन JSON फ़ाइलों में टिप्पणियों का समर्थन करते हैं, लेकिन यह एक गैर-मानक विस्तार है।
JSONB PostgreSQL में JSON के लिए एक बाइनरी स्टोरेज प्रारूप है। टेक्स्ट JSON के विपरीत, JSONB प्रसंस्करण में तेज़ है, इंडेक्सिंग (GIN इंडेक्स) का समर्थन करता है और कुंजी विशिष्टता की गारंटी देता है। हालाँकि, JSONB जोड़े गए मेटाडेटा के कारण डिस्क पर अधिक स्थान लेता है।
त्वरित जाँच के लिए JSONLint (jsonlint.com), try-catch के साथ JavaScript में अंतर्निहित JSON.parse(), या IDE प्लगइन का उपयोग करें। सत्यापन में सही उद्धरण, कोष्ठक बंद होना और प्रकार अनुरूपता की जाँच शामिल है। जटिल स्कीमा के लिए, JSON Schema Validator का उपयोग करें।
JSON विनिर्देश में कोई सीमा नहीं है। व्यवहार में, आकार डिवाइस मेमोरी और पार्सर क्षमताओं द्वारा सीमित है। मोबाइल एप्लिकेशन के लिए, प्रति प्रतिक्रिया 1-2 MB से अधिक न करने की अनुशंसा की जाती है, और बड़े डेटा के लिए पेजिनेशन या स्ट्रीमिंग का उपयोग करें।
सारांश
हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे
IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।
यह भी पढ़ें