Concept and features of JSON: similarities and difference among JSON and XML; JSON objects (with string and numbers); JSON arrays and examples; JSON comments

JSON वह lightweight, text-based format है जो mobile apps servers के साथ data exchange करने के लिए इस्तेमाल करते हैं: braces में objects, brackets में arrays, कोई comments नहीं, और XML से lighter, जिसे FestConnect Mobile events दिखाने के लिए parse करता है।

10 min read · 9 cards · 2 checks

Read in: English · हिन्दी · ગુજરાતી


Theory

App को इसके Events कैसे मिलते हैं

FestConnect Mobile अपने events invent नहीं करता: यह इन्हें एक server से FETCH करता है, जो इन्हें एक specific format में text की तरह भेजता है। वह format लगभग हमेशा JSON है, वह lightweight data language जिसे आपने BCA405-01 में deeply study किया और BCA504 में server-side generate किया।

अब आप इससे MOBILE side से मिलते हैं: app एक API से JSON request करता है, इसे Kotlin objects में PARSE करता है, और इन्हें display करता है। यह lesson JSON की structure और XML के साथ इसका contrast recap करता है, फिर focus करता है कि एक Android app actually इसे कैसे consume करता है। JSON FestConnect Mobile और इसके data के बीच का bridge है।

Theory

JSON Structure, Recapped

JSON (JavaScript Object Notation) एक lightweight, text-based, language-independent data format है:

  • objects: { "key": value } DOUBLE-QUOTED keys के साथ
  • arrays: [ value, value ]
  • values: string (double quotes), number (bare), boolean, null, या nested object/array

और एक rule जो repeat करने लायक है: JSON में कोई comments NAHIN हैं (XML के उलट)। यह deliberately minimal है।

आपने BCA405-01 में जो सीखा वह सब apply होता है। Mobile के लिए key point: एक server एक JSON string भेजता है, और app उस string को usable objects में बदलता है। एक events endpoint event OBJECTS का एक ARRAY return कर सकता है, exactly वह shape जो FestConnect Mobile को अपनी list build करने के लिए चाहिए।

Practical

Events JSON, और इसे Android में Parse करना

// The server sends this JSON (an array of event objects):
// [
//   { "name": "Garba Night", "seats": 350 },
//   { "name": "Coding Contest", "seats": 60 }
// ]

import org.json.JSONArray

fun parseEvents(jsonText: String): List<String> {
    val names = mutableListOf<String>()
    val arr = JSONArray(jsonText)           // parse the JSON array
    for (i in 0 until arr.length()) {
        val obj = arr.getJSONObject(i)      // each event object
        names.add(obj.getString("name"))    // read the name field
    }
    return names
}
// Android also offers Gson/Moshi to map JSON directly to Kotlin classes.

At a glance

JSON बनाम XML (Recap)

AspectJSONXML
WeightLighter (कोई closing tags नहीं)Heavier (open/close tags)
ArraysNative [ ]Repeated elements
Commentsकोई नहींहाँ (<!-- -->)
Apps में ParsingEasy, objects से map होता हैTree walking चाहिए

Quiz

JSON के बारे में कौन सा statement correct है?

  1. JSON code की तरह // से comments support करता है
  2. JSON {} objects और [] arrays वाला एक lightweight data format है; इसमें कोई comments NAHIN हैं और यह XML से lighter है
  3. JSON सिर्फ़ text store कर सकता है, numbers नहीं
  4. JSON XML से heavier है
Show the answer

JSON {} objects और [] arrays वाला एक lightweight data format है; इसमें कोई comments NAHIN हैं और यह XML से lighter है

JSON objects {} (double-quoted keys) और arrays [] इस्तेमाल करने वाला एक lightweight, text-based data format है, कोई comment syntax नहीं, और यह XML से lighter है (कोई closing tags नहीं, native arrays)। Option A एक common myth है: standard JSON में कोई comments NAHIN हैं (एक पूरा BCA405-01 lesson)। Option C false है: JSON strings, numbers, booleans, null, और nested structures store करता है। Option D weight comparison reverse करता है: JSON XML से lighter है, यही वजह है mobile apps और APIs इसे prefer करते हैं (network पर कम data, आसान parsing)। FestConnect Mobile के लिए, JSON वह compact, easy-to-parse format है जो server events deliver करने के लिए इस्तेमाल करता है।

Think first

Mobile Apps JSON क्यों पसंद करते हैं

Mobile apps limited data और battery वाले phones पर चलते हैं। यह JSON को, XML की बजाय, servers से बात करने के लिए natural choice क्यों बनाता है? फिर tap कीजिए।

Show the answer

क्योंकि JSON LIGHTER है। एक mobile network पर, हर byte data और battery cost करता है, और JSON XML जितनी same information बहुत कम bytes में carry करता है (कोई repeated closing tags नहीं, compact syntax)। Smaller responses मतलब faster downloads, कम data usage, और कम battery drain, सब एक phone पर precious। JSON ज़्यादा आसानी से PARSE भी होता है और cleanly objects से map होता है (एक JSON object एक Kotlin object बन जाता है), तो app response को usable data में बदलने में कम effort spend करता है। और चूँकि mobile apps overwhelmingly REST APIs से बात करते हैं जो JSON return करती हैं, इसका इस्तेमाल ecosystem को fit करता है। XML की अभी भी अपनी जगह है (Android LAYOUTS XML हैं, और कुछ enterprise systems इसे इस्तेमाल करते हैं), पर app-to-server DATA exchange के लिए, JSON की lightness और ease जीतती हैं। General principle: constrained devices पर, उस format को prefer कीजिए जो सबसे कम overhead के साथ move और parse होता है।

Watch out

JSON-in-Android Traps

JSON Comments की Expectation: कोई नहीं हैं; JSON में // मत डालिए।

Parse Errors Handle न करना: malformed JSON throws करता है; parsing को try/catch में wrap कीजिए।

UI Thread Block करना: fetching और parsing main thread से off होनी चाहिए (coroutines/background), नहीं तो app freeze हो जाता है।

Fields Exist करने का Assume करना: एक missing key getString के साथ throws करता है; check कीजिए या opt methods / nullable mapping इस्तेमाल कीजिए।

JSON (data) को XML Layouts से Confuse करना: Android layouts के लिए XML इस्तेमाल करता है पर API data के लिए JSON; अलग jobs।

Theory

Data Format जाना; अब Screens के बीच Move कीजिए

FestConnect Mobile server से भेजी events JSON parse कर सकता है। एक real app के पास MULTIPLE screens हैं: एक event list, एक event detail, एक registration form। इनके बीच move करना, और data साथ pass करना, INTENTS से किया जाता है, activities के बीच launch और communicate करने का Android का mechanism। अगला lesson multi-screen apps और intents cover करता है, Android navigation का backbone जिससे आप पहली बार BCA305-02 में मिले।

Summary

Key takeaways

  • JSON एक lightweight, text-based, language-independent data format है: objects {"key": value}, arrays [value, value]।
  • Values: string (double quotes), number (bare), boolean, null, nested; keys double-quoted हैं; JSON में कोई comments नहीं हैं।
  • JSON बनाम XML: JSON lighter है (कोई closing tags नहीं), native arrays हैं, आसानी से parse होता है; XML में tags, attributes, comments हैं।
  • Mobile apps एक server (REST API) से JSON fetch करते हैं और इसे display के लिए objects में PARSE करते हैं।
  • Android org.json (JSONObject/JSONArray) से या Gson/Moshi जैसी libraries से JSON parse करता है (Kotlin classes से map करते हुए)।
  • JSON की lightness phones को suit करती है (कम data, battery, आसान parsing); XML Android layouts के लिए इस्तेमाल होता है, API data के लिए नहीं।
  • Memory hook: JSON वह light data format है जो apps fetch और parse करते हैं; कोई comments नहीं, XML से lighter।

Study this properly

This page is the lesson to read. In Gri-Learn the same topic is a graded deck: the self-checks are scored and your weak topics are tracked. Free to start.

Start this topic

Already have an account? Sign in

More from JSON, Intent and Storing Android Application data using Database

Gri-Learn · syllabus-mapped B.C.A. lessons in English, Hindi and Gujarati