JavaRush /Blog Jawa /Random-JV /Format Serialisasi ing Jawa

Format Serialisasi ing Jawa

Diterbitake ing grup
Hello! Ayo dadi pirembagan bab serialization ing Jawa. Sampeyan mbokmenawa elinga yen kita wis duwe ceramah babagan serialisasi. Bener :) Iki sing pertama Lan sing nomer loro Yen sampeyan ora ngelingi cara kerja serialisasi, kenapa perlu, lan alat apa sing ana ing Jawa, sampeyan bisa maca ceramah kasebut. Kuliah dina iki bakal dadi teoritis, lan ing kono kita bakal nliti format serialisasi. Format serialisasi ing Jawa - 1Pisanan, ayo ngelingi apa serialisasi. Serialisasi yaiku proses nyimpen kahanan obyek menyang urutan bita. Deserialisasi yaiku proses rekonstruksi obyek saka bita kasebut. A obyek Jawa bisa serialized lan ditransfer liwat jaringan (contone, kanggo komputer liyane). Dadi, urutan bait sing padha iki bisa diwakili ing macem-macem format. Sampeyan ngerti babagan iki saka panggunaan komputer saben dina. Contone, e-book (utawa dokumen teks prasaja) sing diwaca bisa ditulis ing macem-macem format:
  • docx (format Microsoft Word);
  • pdf (format Adobe);
  • mobi (umume digunakake ing piranti Amazon Kindle);
  • lan akeh liyane (ePub, djvu, fb2...).
Kayane tugase padha: nampilake teks ing wangun sing bisa diwaca manungsa. Nanging wong wis nemokke Bunch kabèh format. Malah tanpa nerangake rincian karyane, kita bisa nganggep manawa iki ditindakake kanthi alesan. Saben uwong mesthi duwe kaluwihan lan kekurangane dhewe-dhewe dibandhingake karo liyane. Mungkin format serialisasi digawe miturut prinsip sing padha? Inggih, guess apik, mahasiswa! :) Cara iku. Kasunyatane manawa ngirim data liwat kadohan minangka perkara sing rada angel, lan ana akeh faktor. Sapa sing ngirim data? ngendi? Volume apa? Apa pihak sing nampa bakal dadi wong utawa mesin (yaiku data kudu bisa diwaca manungsa)? Piranti apa sing bakal maca data? Temenan, kahanan beda. Iku salah siji bab nalika sampeyan kudu nransfer gambar 500KB saka siji smartphone liyane. Lan beda banget nalika kita ngomong babagan 500 terabyte data bisnis sing kudu dikompres kanthi efisien lan bisa ditransfer kanthi cepet. Ayo dipikir ing format serialization utama lan katon ing kaluwihan lan cacat saben!

JSON

Notasi Objek JavaScript. Sampeyan wis rada akrab karo dheweke! Kita ngomong babagan iki ing kuliah iki , lan kita ndeleng serialisasi ing JSON ing kene . Iki entuk jenenge kanthi alasan. Objek Java sing diowahi dadi JSON katon persis kaya obyek JavaScript. Sampeyan ora perlu ngerti JavaScript kanggo ngerti makna obyek kita:
{
   "title": "Война и мир",
   "author": "Лев Толстой",
   "year": 1869
}
Ora perlu ngliwati siji obyek. JSON uga bisa ngemot macem-macem obyek:
[
 {
   "title": "Война и мир",
   "author": "Лев Толстой",
   "year": 1869
 },

 {
   "title": "Бесы",
   "author": "Федор Достоевский",
   "year": 1872
 },

 {
   "title": "Чайка",
   "author": "Антон Чехов",
   "year": 1896
 }
]
Amarga JSON minangka obyek JavaScript, iki ndhukung format data JavaScript ing ngisor iki:
  • senar;
  • angka (nomer);
  • barang (obyek);
  • larik (susuran);
  • nilai boolean (bener lan salah);
  • null.
Apa kaluwihan JSON?
  1. Format sing bisa diwaca manungsa. Iki minangka kauntungan sing jelas yen pangguna pungkasan sampeyan manungsa. Contone, server sampeyan nyimpen database kanthi jadwal penerbangan. Klien manungsa njaluk data saka database iki nggunakake aplikasi web nalika lungguh ing omah ing komputer. Amarga sampeyan kudu nyedhiyakake data kanthi format sing bisa dingerteni, JSON minangka solusi sing apik.

  2. Kesederhanaan. Sampeyan bisa ngomong iku SD :) Ndhuwur kita menehi conto rong file JSON. Lan sanajan sampeyan durung nate krungu babagan anane JavaScript (apamaneh obyek kasebut), sampeyan bisa kanthi gampang ngerti apa jenis obyek sing diterangake ing kono.
    Dokumentasi JSON kabeh minangka salah sawijining kaca web kanthi sawetara gambar.

  3. Nyebar. JavaScript minangka basa front-end sing dominan, lan ndhikte istilah kasebut. Nggunakake JSON iku kudu. Mulane, akeh layanan web nggunakake JSON minangka format kanggo ijol-ijolan data. Saben IDE modern ndhukung format JSON (kalebu Intellij IDEA). Akeh perpustakaan wis ditulis kanggo nggarap JSON kanggo kabeh basa pemrograman.

Contone, sampeyan wis kerjo karo perpustakaan Jackson ing kuliah ngendi kita sinau kanggo serialize obyek Jawa menyang JSON. Nanging saliyane Jackson ana, contone, GSON - perpustakaan banget trep saka Google.

YAML

Ing wiwitan eksistensi, iku ngadeg kanggo Yet Another Markup Language - "basa markup liyane." Ing wektu iku dipanggonke minangka saingan kanggo XML. Saiki, sawise liwat wektu, iku singkatan saka “YAML Ain't Markup Language” (“YAML is not a markup language”). Dheweke kaya apa? Bayangake yen kita kudu nggawe 3 kelas karakter kanggo game komputer kita: Warrior, Mage lan Thief. Dheweke bakal duwe ciri ing ngisor iki: kekuwatan, ketangkasan, toleransi, lan sakumpulan senjata. Iki minangka file YAML kita kanthi deskripsi kelas:
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
Berkas YAML nduweni struktur wit: sawetara unsur ana ing njero liyane. Kita bisa ngontrol nesting kanthi nggunakake sawetara spasi kanggo nunjukake saben level. Apa kaluwihan format YAML?
  1. Bisa diwaca manungsa. Maneh, sanajan sampeyan ndeleng file yaml tanpa katrangan, sampeyan bisa ngerti kanthi gampang obyek apa sing diterangake ing kono. YAML iku carane bisa diwaca manungsa yen kaca utama yaml.org minangka file yaml biasa :)

  2. Kekompakan. Struktur file dibentuk kanthi spasi: ora perlu nggunakake kurung utawa kuotasi.

  3. Dhukungan kanggo struktur data asli basa pemrograman. Kauntungan gedhe saka YAML tinimbang JSON lan akeh format liyane yaiku ndhukung struktur data sing beda. Ing antarane:

    • !!map
      Koleksi pasangan key:value sing ora diurutake kanthi ora ana kemungkinan duplikat;

    • !!map
      Urutan pasangan key:value sing diurutake tanpa kemungkinan duplikat;

    • !!pasangan:
      Urutan urutan kunci: pasangan nilai kanthi kemungkinan duplikat;

    • !!set
      Urutan nilai sing ora padha karo siji liyane;

    • !!seq
      Urut-urutan saka nilai-nilai arbitrer;

    Sawetara struktur iki bakal kenal karo sampeyan saka basa Jawa! :) Thanks kanggo fitur iki, sampeyan bisa nggawe serialisasi macem-macem struktur data saka basa pemrograman menyang format YAML.

  4. Kemampuan kanggo nggunakake jangkar lan alias

    Terjemahan saka tembung "jangkar" lan "alias" - "jangkar" lan "jeneng samaran". Ing asas, cukup akurat nggambarake inti saka istilah kasebut ing YAML.

    Padha ngidini sampeyan kanggo ngenali unsur ing file yaml, lan deleng ing liyane saka file yen ana bola-bali. Anchor digawe nggunakake simbol &lan alias digawe nggunakake *.

    Ayo kita duwe file kanthi deskripsi buku Leo Tolstoy. Kanggo ngindhari nulis jeneng penulis kanthi manual saben wektu, kita mung bakal nggawe jangkar "leo" lan ngrujuk nganggo alias nalika kita butuh:

    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

    Nalika kita maca file iki karo sawetara parser, Nilai "Leo Tolstoy" bakal diganti ing panggonan tengen ing panggonan alias kita.

  5. Sampeyan bisa masang data ing format liyane ing YAML. Contone, 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
            }
          ]

Format serialisasi liyane

XML

Format iki adhedhasar wit tag sing diarani.
<book>
   <title>Harry Potter and the Philosopher’s Stone</title>
   <author>J. K. Rowling</author>
   <year>1997</year>
</book>
Saben unsur kasusun saka tag pambuka lan tutup (<> lan </>). Saben unsur bisa duwe unsur nested. XML minangka format umum, ora kalah karo JSON lan YAML (yen kita ngomong babagan panggunaan ing proyek nyata). Kita duwe kuliah kapisah babagan XML .

BSON (JSON biner)

Minangka jeneng kasebut, meh padha karo JSON, nanging ora bisa diwaca manungsa lan ngoperasikake data kanthi format binar. Iki nggawe trep banget kanggo nyimpen lan nransfer gambar lan lampiran liyane. Kajaba iku, BSON ndhukung sawetara jinis data sing ora kasedhiya ing JSON. Contone, sampeyan bisa nulis tanggal (ing format milidetik) utawa malah potongan kode JavaScript menyang file BSON. Basis data NoSQL populer MongoDB nyimpen informasi ing format BSON.

Protokol adhedhasar posisi

Ing sawetara kahanan, kita kudu nyuda sacara dramatis jumlah data sing ditransfer (contone, yen ana akeh data lan kudu nyuda beban). Ing kahanan iki, kita bisa nggunakake protokol adhedhasar posisi , yaiku, pass nilai parameter tanpa jeneng paramèter kasebut.
"Leo Tolstoy" | "Anna Karenina" | 1873
Data ing format iki njupuk luwih akeh spasi tinimbang file JSON lengkap. Mesthi, ana format serialization liyane, nanging sampeyan ora perlu ngerti kabeh saiki :) Iku apik kanggo menowo karo format sing saiki standar industri kanggo pangembangan aplikasi, lan elinga kaluwihan lan beda saka saben liyane. . Lan kuliah kita wis rampung :) Aja lali ngrampungake sawetara masalah dina iki! Sampai ketemu maneh! :)
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION