CodeGym /جاوا بلاگ /Random-SD /جاوا سيريلائيزيشن فارميٽ
John Squirrels
سطح
San Francisco

جاوا سيريلائيزيشن فارميٽ

گروپ ۾ شايع ٿيل
سلام اچو ته سيريلائيزيشن بابت ڳالهايون. توهان کي شايد ياد هوندو ته اسان اڳ ۾ ئي سيريلائيزيشن تي سبق حاصل ڪري چڪا آهيون. ۽ ائين اسان ڪيو :) هتي پهريون آهي ۽ هتي ٻيو آهي . جيڪڏهن توهان کي چڱيءَ طرح ياد ناهي ته سيريلائيزيشن ڪيئن ڪم ڪري ٿي، سيريلائيزيشن جي ضرورت ڇو آهي، ۽ جاوا وٽ سيريلائيزيشن لاءِ ڪهڙا اوزار آهن، توهان انهن سبقن ذريعي هلائي سگهو ٿا. اڄ جو سبق نظريي بابت هوندو. اسان سيريلائيزيشن فارميٽ تي هڪ ويجهي نظر وجهڻ وارا آهيون. پهرين، اچو ته ياد رکون ته سيريلائيزيشن ڇا آهي. سيريلائيزيشن بائيٽ جي هڪ ترتيب ۾ ڪنهن شئي جي حالت کي محفوظ ڪرڻ جو عمل آهي. Deserialization انهن بائيٽ مان هڪ اعتراض کي بحال ڪرڻ جو عمل آهي. هڪ جاوا اعتراض سيريل ڪري سگھجي ٿو ۽ نيٽ ورڪ تي موڪليو ويو (مثال طور، ٻئي ڪمپيوٽر ڏانهن). بائيٽ جو تسلسل مختلف شڪلين ۾ پيش ڪري سگھجي ٿو. توهان هن تصور کان واقف آهيو عام ڪمپيوٽر جي استعمال کان. مثال طور، هڪ اليڪٽرانڪ ڪتاب (يا هڪ سادي متن دستاويز) مختلف فارميٽ جي هڪ گروپ ۾ لکي سگهجي ٿو:
  • docx (Microsoft Word فارميٽ)؛
  • pdf (Adobe فارميٽ)؛
  • mobi (عام طور تي Amazon Kindle ڊوائيسز تي استعمال ٿيل)؛
  • ۽ گهڻو ڪجهه (ePub, djvu, fb2, etc.).
هر صورت ۾، مقصد ساڳيو ئي لڳي ٿو: متن کي انساني پڙهڻ جي قابل فارم ۾ پيش ڪريو. اڃا تائين، ماڻهن ڪيترن ئي مختلف شڪلن کي ايجاد ڪيو آهي. انهن جي ڪم جي تفصيل ۾ وڃڻ کان سواء، اسان اهو فرض ڪري سگهون ٿا ته انهن جا سٺا سبب هئا. هر فارميٽ ۾ باقي جي مقابلي ۾ پنهنجا فائدا ۽ نقصان آهن. ٿي سگهي ٿو مختلف سيريلائيزيشن فارميٽ انهن ساڳين اصولن جي پٺيان ٺاهيا ويا؟ بهترين اندازو، شاگرد! :) اهو بلڪل صحيح آهي. حقيقت اها آهي ته هڪ تار تي ڊيٽا موڪلڻ (يا وائرليس طور تي) مشڪل ڪاروبار آهي، ۽ ان ۾ ڪيترائي عنصر شامل آهن. ڊيٽا ڪير موڪلي رهيو آهي؟ ڪيڏانھن؟ ڪهڙو حجم؟ ڇا وصول ڪندڙ انسان يا ڪمپيوٽر هوندو (يعني ڊيٽا کي انساني پڙهڻ جي قابل هجڻ گهرجي)؟ ڪهڙي ڊوائيس ڊيٽا پڙهي ويندي؟ ظاهر آهي، اهي حالتون مختلف آهن. 500 KB تصوير هڪ اسمارٽ فون کان ٻئي ڏانهن موڪلڻ هڪ شيءِ آهي. ۽ اها هڪ مڪمل طور تي مختلف شيءِ آهي جيڪڏهن اسان 500 ٽيرا بائيٽ جي ڪاروباري ڊيٽا بابت ڳالهائي رهيا آهيون جنهن کي لازمي طور تي ڪمپريس ڪيو وڃي ۽ جيترو جلدي ممڪن ٿي سگهي موڪليو وڃي. اچو ته مکيه سيريلائيزيشن فارميٽ سان واقف ٿي وڃو ۽ انهن مان هر هڪ جي فائدن ۽ نقصانن تي غور ڪريو!

JSON

JavaScript آبجیکٹ نوٽيشن. توھان اڳ ۾ ئي ھن فارميٽ بابت ٿورو ڄاڻو ٿا! اسان ان بابت هن سبق ۾ ڳالهايو ، ۽ اسان هتي ئي JSON ۾ سيريلائيزيشن کي ڍڪي ڇڏيو . اهو هڪ سبب لاء ان جو نالو مليو. جاوا شيون JSON ۾ تبديل ٿيل اصل ۾ جاوا اسڪرپٽ ۾ شيون وانگر نظر اچن ٿيون. اسان جي اعتراض کي سمجهڻ لاءِ توهان کي جاوا اسڪرپٽ ڄاڻڻ جي ضرورت ناهي:

{
   "title": "War and Peace",
   "author": "Lev Tolstoy",
   "year": 1869
}
اسان هڪ واحد اعتراض موڪلڻ تائين محدود نه آهيون. JSON فارميٽ پڻ شين جي صف جي نمائندگي ڪري سگھي ٿو:

[
 {
   "title": "War and Peace",
   "author": "Lev Tolstoy",
   "year": 1869
 },

 {
   "title": "Demons",
   "author": "Fyodor Dostoyevsky",
   "year": 1872
 },

 {
   "title": "The Seagull",
   "author": "Anton Chekhov",
   "year": 1896
 }
]
ڇاڪاڻ ته JSON جاوا اسڪرپٽ شين جي نمائندگي ڪري ٿو، اهو هيٺين جاوا اسڪرپٽ ڊيٽا فارميٽس کي سپورٽ ڪري ٿو:
  • تارون
  • انگ
  • شيون؛
  • صفون
  • booleans (سچ ۽ غلط)؛
  • null
JSON جا فائدا ڇا آهن؟
  1. انساني پڙهڻ واري شڪل. اهو هڪ واضح فائدو آهي جيڪڏهن توهان جو آخري صارف انسان آهي. مثال طور، فرض ڪريو توهان جي سرور وٽ هڪ ڊيٽابيس آهي پروازن جي شيڊول سان. هڪ انساني گراهڪ، گهر ۾ پنهنجي ڪمپيوٽر تي ويٺي، ويب ايپليڪيشن استعمال ڪندي هن ڊيٽابيس مان ڊيٽا جي درخواست ڪري ٿو. ڇو ته توهان کي ڊيٽا مهيا ڪرڻ جي ضرورت آهي هڪ فارميٽ ۾ جيڪو هو سمجهي سگهي ٿو، JSON هڪ بهترين حل آهي.

  2. سادگي. اهو بلڪل سادو آهي :) مٿي، اسان ٻن JSON فائلن جو مثال ڏنو. ۽ جيتوڻيڪ توهان JavaScript جي باري ۾ نه ٻڌو آهي (اڪيلو JavaScript شين کي ڇڏي ڏيو)، توهان آساني سان سمجهي سگهو ٿا انهن شين جي ترتيب کي هتي بيان ڪيو ويو آهي.
    سموري JSON دستاويزن تي مشتمل آھي ھڪڙي ويب پيج تي ڪجھ تصويرن سان.

  3. وسيع استعمال. JavaScript غالب فرنٽ-اينڊ ٻولي آهي، ۽ ان جي پنهنجي گهرج آهي. JSON استعمال ڪرڻ لازمي آھي. تنهن ڪري، ويب سروسز جو هڪ وڏو تعداد JSON کي ڊيٽا جي بدلي فارميٽ طور استعمال ڪري ٿو. هر جديد IDE JSON فارميٽ کي سپورٽ ڪري ٿو (بشمول IntelliJ IDEA). JSON سان ڪم ڪرڻ جي قابل ڪرڻ لاءِ سڀني قسمن جي پروگرامنگ ٻولين لاءِ لائبريرين جو هڪ گروپ لکيو ويو آهي.

مثال طور، توھان اڳ ۾ ئي ڪم ڪيو آھي جڪسن لئبريري ۾ ھڪ سبق ۾ جتي اسان سکيو آھي جاوا جي شين کي JSON ۾ سيريل ڪرڻ. پر جڪسن کان علاوه، اسان وٽ آهي، مثال طور، GSON ، جيڪا گوگل جي هڪ تمام آسان لائبريري آهي.

YAML

شروعات ۾، YAML "اڃا ٻي مارڪ اپ ٻولي" لاء بيٺو. جڏهن اهو شروع ٿيو، اهو ايڪس ايم ايل جي مقابلي ۾ پوزيشن ڪيو ويو. هاڻي، وقت گذرڻ سان گڏ، YAML جو مطلب آهي "YAML مارڪ اپ ٻولي ناهي". اهو ڇا واقعي آهي؟ اچو ته تصور ڪريون ته اسان کي ڪمپيوٽر جي راند ۾ ڪردارن جي نمائندگي ڪرڻ لاءِ 3 طبقن ٺاهڻ جي ضرورت آهي: وارير، ميج ۽ چور. انهن ۾ هيٺيان خاصيتون هونديون: طاقت، چپلائي، برداشت، هٿيارن جو هڪ سيٽ. ھتي اھو آھي جيڪو ھڪڙو YAML فائل بيان ڪري ٿو جيڪو اسان جي ڪلاسن وانگر نظر ايندو:

classes:
 class-1:
   title: Warrior
   power: 8
   agility: 4
   stamina: 7
   weapons:
     - sword
     - spear
    
 class-2:
   title: Mage
   power: 5
   agility: 7
   stamina: 5
   weapons:
     - magic staff

 class-3:
   title: Thief
   power: 6
   agility: 6
   stamina: 5
   weapons:
     - dagger
     - poison
هڪ YAML فائل ۾ هڪ وڻ جي جوڙجڪ آهي: ڪجهه عناصر ٻين ۾ رکيل آهن. اسان nesting کي ڪنٽرول ڪري سگھون ٿا مخصوص تعداد جي اسپيس استعمال ڪندي، جنهن کي اسين هر سطح کي ظاهر ڪرڻ لاءِ استعمال ڪندا آهيون. YAML فارميٽ جا ڪهڙا فائدا آهن؟
  1. انساني پڙهڻ جي قابل. ٻيهر، بغير ڪنهن وضاحت جي YAML فائل ڏسي، توهان آساني سان سمجهي سگهو ٿا شيون جيڪي اهو بيان ڪري ٿو. YAML ايترو ته انساني پڙهڻ جي قابل آهي ته ويب سائيٽ yaml.org هڪ عام YAML فائل آهي :)

  2. ٺهڪندڙ. فائل جي ڍانچي کي اسپيس استعمال ڪندي ٺاهيو ويو آهي: بریکٹ يا ڪوٽا جي نشانن کي استعمال ڪرڻ جي ڪا ضرورت ناهي.

  3. پروگرامنگ ٻولين لاءِ اصلي ڊيٽا جي جوڙجڪ لاءِ سپورٽ. JSON ۽ ٻين ڪيترن ئي فارميٽ تي YAML جو وڏو فائدو اهو آهي ته اهو مختلف ڊيٽا جي جوڙجڪ کي سپورٽ ڪري ٿو. انهن ۾ شامل آهن:

    • !!نقشو
      اهم قدر جي جوڙي جو هڪ غير ترتيب ڏنل سيٽ جنهن ۾ نقل نه ٿي سگهي.

    • !!omap
      اهم-قدر جوڙن جو هڪ ترتيب ڏنل ترتيب جنهن ۾ نقل نه ٿي سگھي؛

    • !!جوڙا:
      اهم-قدر جوڙن جو هڪ ترتيب ڏنل ترتيب جنهن ۾ نقل ٿي سگهي ٿي؛

    • قدرن جو هڪ غير ترتيب وارو سلسلو مقرر ڪريو
      جيڪي هڪ ٻئي جي برابر نه هجن.

    • !!seq
      ثقلي قدرن جو هڪ سلسلو؛

    توهان جاوا مان انهن مان ڪجهه اڏاوتن کي سڃاڻندا! :) هن جو مطلب آهي ته پروگرامنگ ٻولين مان مختلف ڊيٽا جي جوڙجڪ YAML ۾ سيريل ڪري سگهجي ٿو.

  4. لنگر ۽ عرف استعمال ڪرڻ جي صلاحيت

    اهي مارڪر توهان کي YAML فائل ۾ ڪجهه عنصر جي سڃاڻپ ڪرڻ جي اجازت ڏين ٿا، ۽ پوء ان کي باقي فائل ۾ حوالو ڏيو جيڪڏهن اهو بار بار ٿئي ٿو. ھڪڙو لنگر ٺاھيو ويو آھي علامت ۽ استعمال ڪندي ، ۽ ھڪڙو عرف ٺاھيو ويو آھي * استعمال ڪندي .

    فرض ڪريو اسان وٽ هڪ فائيل آهي جنهن ۾ ليو ٽالسٽائي جي ڪتابن جو بيان آهي. هر ڪتاب لاءِ ليکڪ جو نالو لکڻ کان پاسو ڪرڻ لاءِ، اسان صرف ليو اينڪر ٺاهيندا آهيون ۽ ان کي هڪ عرف استعمال ڪندي حوالو ڏيون ٿا جڏهن اسان کي ضرورت هجي:

    
    books:
     book-1:
       title: War and Peace
       author: &leo Leo Tolstoy
       year: 1869
    
     book-2:
       title: Anna Karenina
       author: *leo
       year: 1873
    
     book-3:
       title: Family Happiness
       author: *leo
       year: 1859

    جڏهن هن فائل کي پارس ڪيو ويندو، قدر "ليو ٽالسٽائي" کي درست هنڌن تي متبادل بڻايو ويندو جتي اسان جا نالا آهن.

  5. YAML ڊيٽا کي ٻين شڪلن ۾ شامل ڪري سگھي ٿو. مثال طور، JSON:

    
    books: [
            {
              "title": "War and Peace",
              "author": "Leo Tolstoy",
              "year": 1869
            },
    
            {
              "title": "Anna Karenina",
              "author": "Leo Tolstoy",
              "year": 1873
            },
    
            {
              "title": "Family Happiness",
              "author": "Leo Tolstoy",
              "year": 1859
            }
          ]

ٻيا سيريلائيزيشن فارميٽ

ايڪس ايم ايل

هي فارميٽ هڪ ٽيگ وڻ تي ٻڌل آهي.

<book>
   <title>Harry Potter and the Philosopher’s Stone</title>
   <author>J. K. Rowling</author>
   <year>1997</year>
</book>
هر عنصر هڪ افتتاحي ۽ بند ڪرڻ واري ٽيگ تي مشتمل آهي (<> ۽ </>). هر عنصر کي nested عنصرن ڪري سگهو ٿا. XML هڪ عام شڪل آهي جيڪا صرف JSON ۽ YAML وانگر سٺي آهي (جيڪڏهن اسان حقيقي منصوبن بابت ڳالهائي رهيا آهيون). اسان وٽ XML بابت هڪ الڳ سبق آهي .

BSON (بائنري JSON)

جيئن ته ان جي نالي جو مطلب آهي، BSON تمام گهڻو JSON سان ملندڙ جلندڙ آهي، پر اهو انساني پڙهڻ جي قابل ناهي ۽ بائنري ڊيٽا استعمال ڪري ٿو. نتيجي طور، تصويرن ۽ ٻين منسلڪات کي محفوظ ڪرڻ ۽ منتقل ڪرڻ لاء تمام سٺو آهي. ان کان علاوه، BSON ڪجھ ڊيٽا جي قسمن کي سپورٽ ڪري ٿو JSON ۾ دستياب ناهي. مثال طور، هڪ BSON فائل ۾ تاريخ شامل ٿي سگھي ٿي (ملي سيڪنڊ فارميٽ ۾) يا جاوا اسڪرپٽ ڪوڊ جو هڪ ٽڪرو به. مشهور MongoDB NoSQL ڊيٽابيس BSON فارميٽ ۾ معلومات محفوظ ڪري ٿو.

پوزيشن تي ٻڌل پروٽوڪول

ڪجهه حالتن ۾، اسان کي موڪليل ڊيٽا جي مقدار کي تمام گهڻو گهٽائڻ جي ضرورت آهي (مثال طور، جيڪڏهن اسان وٽ تمام گهڻو ڊيٽا آهي ۽ لوڊ کي گهٽائڻ جي ضرورت آهي). ھن صورتحال ۾، اسان پوزيشن تي ٻڌل پروٽوڪول استعمال ڪري سگھون ٿا، اھو آھي، پيٽرولر جي قيمتن کي موڪليو بغير پيٽرولر جي نالن جي پاڻ کي.

"Leo Tolstoy" | "Anna Karenina" | 1873
هن فارميٽ ۾ ڊيٽا هڪ مڪمل JSON فائل کان ڪيترائي ڀيرا گهٽ جاء وٺندو آهي. يقينن، ٻيا به سيريلائيزيشن فارميٽ آهن، پر توهان کي انهن سڀني کي في الحال ڄاڻڻ جي ضرورت ناهي :) اهو سٺو آهي جيڪڏهن توهان موجوده صنعت جي معياري فارميٽ کان واقف آهيو جڏهن ايپليڪيشنون ٺاهي رهيا آهيو، ۽ انهن جي فائدن کي ياد رکو ۽ انهن مان ڪيئن مختلف آهن. ٻيو. ۽ ان سان گڏ، اسان جو سبق پڄاڻي تي پهچندو آهي :) اڄ ڪجهه ڪمن کي حل ڪرڻ نه وساريو! ٻئي دفعي تائين! :)
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION