- docx (format ng Microsoft Word);
- pdf (Adobe format);
- mobi (karaniwang ginagamit sa mga aparatong Amazon Kindle);
- at marami pang iba (ePub, djvu, fb2, atbp.).
JSON
JavaScript Object Notation. Alam mo na ang kaunti tungkol sa format na ito! Napag-usapan namin ito sa araling ito , at tinakpan namin ang serialization sa JSON dito mismo . Nakuha nito ang pangalan nito para sa isang dahilan. Ang mga bagay sa Java na na-convert sa JSON ay talagang kamukha ng mga bagay sa JavaScript. Hindi mo kailangang malaman ang JavaScript upang maunawaan ang aming bagay:
{
"title": "War and Peace",
"author": "Lev Tolstoy",
"year": 1869
}
Hindi kami limitado sa pagpapadala ng isang bagay. Ang format ng JSON ay maaari ding kumatawan sa isang hanay ng mga bagay:
[
{
"title": "War and Peace",
"author": "Lev Tolstoy",
"year": 1869
},
{
"title": "Demons",
"author": "Fyodor Dostoyevsky",
"year": 1872
},
{
"title": "The Seagull",
"author": "Anton Chekhov",
"year": 1896
}
]
Dahil kinakatawan ng JSON ang mga object ng JavaScript, sinusuportahan nito ang mga sumusunod na format ng data ng JavaScript:
- mga string;
- numero;
- mga bagay;
- arrays;
- booleans (true at false);
- wala.
-
Nababasa ng tao na format. Ito ay isang malinaw na bentahe kung ang iyong end user ay tao. Halimbawa, ipagpalagay na ang iyong server ay may database na may iskedyul ng mga flight. Ang isang tao na customer, na nakaupo sa kanyang computer sa bahay, ay humihiling ng data mula sa database na ito gamit ang isang web application. Dahil kailangan mong magbigay ng data sa isang format na naiintindihan niya, ang JSON ay isang mahusay na solusyon.
-
pagiging simple. Ito ay sobrang simple :) Sa itaas, nagbigay kami ng isang halimbawa ng dalawang JSON file. At kahit na hindi mo pa naririnig ang tungkol sa JavaScript (pabayaan ang mga bagay na JavaScript), madali mong mauunawaan ang uri ng mga bagay na inilalarawan doon.
Ang kabuuan ng dokumentasyon ng JSON ay binubuo ng isang webpage na may ilang larawan. -
Malawakang paggamit. Ang JavaScript ay ang nangingibabaw na front-end na wika, at mayroon itong sariling mga kinakailangan. Ang paggamit ng JSON ay kinakailangan. Samakatuwid, isang malaking bilang ng mga serbisyo sa web ang gumagamit ng JSON bilang format ng palitan ng data. Sinusuportahan ng bawat modernong IDE ang format na JSON (kabilang ang IntelliJ IDEA). Isang grupo ng mga aklatan ang naisulat para sa lahat ng uri ng mga programming language upang paganahin ang pagtatrabaho sa JSON.
YAML
Sa una, ang YAML ay nakatayo para sa "Yet Another Markup Language". Noong nagsimula ito, nakaposisyon ito bilang isang katunggali sa XML. Ngayon, sa paglipas ng panahon, ang YAML ay naging "YAML Ain't Markup Language". Ano ba talaga ito? Isipin natin na kailangan nating lumikha ng 3 klase upang kumatawan sa mga character sa isang laro sa computer: Warrior, Mage, at Thief. Magkakaroon sila ng mga sumusunod na katangian: lakas, liksi, tibay, isang hanay ng mga armas. Narito kung ano ang magiging hitsura ng isang YAML file na naglalarawan sa aming mga klase:
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
Ang isang YAML file ay may istraktura ng puno: ang ilang mga elemento ay naka-nest sa iba. Maaari naming kontrolin ang nesting gamit ang isang tiyak na bilang ng mga puwang, na ginagamit namin upang tukuyin ang bawat antas. Ano ang mga pakinabang ng format na YAML?
-
Nababasa ng tao. Muli, kahit na makakita ng YAML file na walang paglalarawan, madali mong mauunawaan ang mga bagay na inilalarawan nito. Ang YAML ay nababasa ng tao na ang website na yaml.org ay isang ordinaryong YAML file :)
-
Ang pagiging compact. Ang istraktura ng file ay nilikha gamit ang mga puwang: hindi na kailangang gumamit ng mga bracket o panipi.
-
Suporta para sa mga istruktura ng native na data para sa mga programming language. Ang malaking bentahe ng YAML sa JSON at maraming iba pang mga format ay sinusuportahan nito ang iba't ibang istruktura ng data. Kabilang sa mga ito ang:
-
!!map
Isang hindi nakaayos na hanay ng mga pares ng key-value na hindi maaaring magkaroon ng mga duplicate; -
!!map
Isang nakaayos na pagkakasunud-sunod ng mga pares ng key-value na hindi maaaring magkaroon ng mga duplicate; -
!!pares:
Isang nakaayos na pagkakasunud-sunod ng mga pares ng key-value na maaaring magkaroon ng mga duplicate; - !!set
Isang hindi ayos na pagkakasunud-sunod ng mga halaga na hindi katumbas ng bawat isa; - !!seq
Isang pagkakasunud-sunod ng mga di-makatwirang halaga;
Makikilala mo ang ilan sa mga istrukturang ito mula sa Java! :) Nangangahulugan ito na ang iba't ibang istruktura ng data mula sa mga programming language ay maaaring i-serialize sa YAML.
-
-
Kakayahang gumamit ng anchor at alias
Nagbibigay-daan sa iyo ang mga marker na ito na tukuyin ang ilang elemento sa isang YAML file, at pagkatapos ay i-refer ito sa natitirang bahagi ng file kung paulit-ulit itong nangyayari. Ang isang anchor ay nilikha gamit ang simbolo na & , at isang alias ay nilikha gamit ang * .
Ipagpalagay na mayroon kaming isang file na naglalarawan sa mga libro ni Leo Tolstoy. Upang maiwasan ang pagsusulat ng pangalan ng may-akda para sa bawat aklat, ginagawa lang namin ang leo anchor at tinutukoy ito gamit ang isang alias kapag kailangan namin ito:
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
Kapag na-parse ang file na ito, ang value na "Leo Tolstoy" ay papalitan sa mga tamang lugar kung saan mayroon tayong mga alias.
- Maaaring mag-embed ng data ang YAML sa ibang mga format. Halimbawa, 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 } ]
Iba pang mga format ng serialization
XML
Ang format na ito ay batay sa isang tag tree.
<book>
<title>Harry Potter and the Philosopher’s Stone</title>
<author>J. K. Rowling</author>
<year>1997</year>
</book>
Ang bawat elemento ay binubuo ng pambungad at pagsasara na tag (<> at </>). Ang bawat elemento ay maaaring magkaroon ng mga nested na elemento. Ang XML ay isang karaniwang format na kasing ganda ng JSON at YAML (kung totoong mga proyekto ang pinag-uusapan natin). Mayroon kaming hiwalay na aralin tungkol sa XML .
BSON (binary JSON)
Gaya ng ipinahihiwatig ng pangalan nito, ang BSON ay halos kapareho sa JSON, ngunit hindi ito nababasa ng tao at gumagamit ng binary data. Bilang resulta, ito ay napakahusay para sa pag-iimbak at paglilipat ng mga larawan at iba pang mga attachment. Bilang karagdagan, sinusuportahan ng BSON ang ilang uri ng data na hindi available sa JSON. Halimbawa, ang isang BSON file ay maaaring magsama ng petsa (sa millisecond na format) o kahit isang piraso ng JavaScript code. Ang sikat na database ng MongoDB NoSQL ay nag-iimbak ng impormasyon sa BSON na format.Protocol na nakabatay sa posisyon
Sa ilang sitwasyon, kailangan nating bawasan nang husto ang dami ng data na ipinadala (halimbawa, kung marami tayong data at kailangan nating bawasan ang load). Sa sitwasyong ito, maaari naming gamitin ang protocol na nakabatay sa posisyon, iyon ay, magpadala ng mga halaga ng parameter nang walang mga pangalan ng mga parameter mismo.
"Leo Tolstoy" | "Anna Karenina" | 1873
Ang data sa format na ito ay tumatagal ng ilang beses na mas kaunting espasyo kaysa sa isang buong JSON file. Siyempre, may iba pang mga format ng serialization, ngunit hindi mo kailangang malaman ang lahat ng mga ito sa ngayon :) Mabuti kung pamilyar ka sa kasalukuyang mga standard na format ng industriya kapag bumubuo ng mga application, at tandaan ang kanilang mga pakinabang at kung paano sila naiiba sa isa. isa pa. At kasama nito, magtatapos ang ating aralin :) Huwag kalimutang lutasin ang ilang gawain ngayon! Hanggang sa muli! :)
GO TO FULL VERSION