Tietomuodot: JSON ja XML
Edellisissä luvuissa tarkasteltiin, miten HTTP toimii ja miten se siirtää dataa. Tässä luvussa käsitellään formaatteja kuten JSON ja XML, joita voidaan käyttää datan välittämiseen palvelimen vastauksen body-osassa tai kun lähetetään pyyntö palvelimelle.
Mikä on JSON?
JSON:ia käytetään datan siirtämiseen avain-arvo-muodossa, mikä tekee datan käsittelystä erittäin kätevää ja mahdollistaa sen muuntamisen suoraan olioksi.
Tämä formaatti tukee taulukoita, olioita sekä primitiiviarvoja kuten merkkijonoja, lukuja ja totuusarvoja.
Tietomuodot JSON-muodossa
JSON-taulukoille voidaan käyttää seuraavaa syntaksia:
{
"courses": ["Math", "Science"]
}
Kaikki tiedot suljetaan aaltosulkeisiin ja avainsana (esim. "courses") määritellään lainausmerkeissä. Tähän avaimeen liittyvä arvo on tässä tapauksessa taulukko (["Math", "Science"]), joka suljetaan hakasulkeisiin osoittamaan, että kyseessä on taulukko.
Jos haluamme siirtää yksinkertaisia primitivityyppejä (kuten numeroita, merkkijonoja tai boolean-arvoja) JSON-muodossa, voimme tehdä sen seuraavasti:
{
"name": "John Doe",
"age": 30,
"isStudent": false
}
Voimme siirtää olioita JSON-muodossa. Olio esitetään joukolla avain-arvo-pareja, jotka on suljettu kaarisulkeisiin.
{
"address": {
"street": "123 Main St",
"city": "Anytown"
}
}
Jokainen avain on merkkijono ja sitä seuraa kaksoispiste, jonka jälkeen tulee vastaava arvo, joka voi olla toinen objekti, taulukko, primitivityyppi tai null.
JSON-tiedon siirtäminen HTTP:n kautta
Kun tietoa siirretään JSON-muodossa HTTP-yhteyden kautta, sekä pyynnöissä että vastauksissa käytetään Content-Type -otsaketta, jonka arvona on application/json. Pyynnössä data sijoitetaan pyynnön runkoon, kun taas vastauksessa data sijoitetaan vastauksen runkoon.
Pyynnön rakenne:
POST /api/users HTTP/1.1
Host: example.com
Content-Type: application/json
{
"name": "John Doe",
"age": 30
}
Vastauksen rakenne:
HTTP/1.1 200 OK
Content-Type: application/json
{
"status": "success",
"data": {
"userId": 12345
}
}
JSON-serialisointi ja -deserialisointi
Serialisointi muuntaa olion tai tietorakenteen muotoon, joka soveltuu verkkosiirtoon tai tiedostojen tallennukseen.
Deserialisointi on käänteinen prosessi, jossa muunnetaan tiedot JSON-muodosta takaisin olioksi tai tietorakenteeksi käytettäväksi koodissa.
Riippuvuus videolta JSON-serialisoinnin ja deserialisoinnin integrointiin. Tämä on välttämätöntä, jotta voidaan käyttää ObjectMapper-luokkaa.
Tämä riippuvuus tulee lisätä pom.xml -tiedostoon ja päivittää se.
Kuinka käyttää Maven-repositoriota
Mitä on XML?
XML esittää dataa käyttämällä tageja, jotka muodostavat hierarkkisen rakenteen. Jokaisella elementillä on sekä avaus- että sulkutagit, ja niillä voi olla myös attribuutteja.
XML-syntaksi
<person>
<name>John Doe</name>
<age>30</age>
<isStudent>false</isStudent>
<courses>
<course>Math</course>
<course>Science</course>
</courses>
<address>
<street>123 Main St</street>
<city>Anytown</city>
</address>
</person>
Kuten huomaat, kaikki perustuu tageihin. Listat ja oliot eivät ole luonteeltaan erilaisia, mutta jos haluamme esittää yksinkertaisen arvon, tagin nimi toimii avaimena ja tägien sisällä oleva arvo on arvo.
XML:n siirto HTTP:n kautta:
XML-tiedon välittämiseen Content-Type -otsake voidaan asettaa joko arvoon application/xml tai text/xml. Data sijoitetaan myös pyynnön tai vastauksen runkoon.
Esimerkki pyynnöstä:
POST /api/users HTTP/1.1
Host: example.com
Content-Type: application/xml
<user>
<name>John Doe</name>
<age>30</age>
</user>
Esimerkki vastauksesta:
HTTP/1.1 200 OK
Content-Type: application/xml
<response>
<status>success</status>
<data>
<userId>12345</userId>
</data>
</response>
XML-serialisointi ja -deserialisointi
Riippuvuus videolta XML:n serialisoinnin ja deserialisoinnin integrointiin. Tämä on välttämätöntä, jotta voidaan käyttää XmlMapper-luokkaa.
Tämä riippuvuus tulee lisätä pom.xml -tiedostoon ja päivittää se.
Yhteenveto
JSON on ensisijainen valinta nykyaikaisissa verkkosovelluksissa sen kevyen ja yksinkertaisen rakenteen vuoksi. Vaikka XML voi olla vähemmän kätevä monissa verkkotilanteissa, se voi olla hyödyllinen tapauksissa, joissa tarvitaan monimutkaista tietorakennetta ja tiukkoja skeemoja.
1. Mitä muotoa käytetään esittämään tietoa key-value-pareina ja joka on kevyempi sekä kätevämpi tiedonsiirrossa verkon yli?
2. Mikä seuraavista koodiesimerkeistä on kelvollinen JSON?
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
What are the main differences between JSON and XML?
Can you explain when to use JSON versus XML?
How does serialization and deserialization work in practice?
Awesome!
Completion rate improved to 3.45
Tietomuodot: JSON ja XML
Pyyhkäise näyttääksesi valikon
Edellisissä luvuissa tarkasteltiin, miten HTTP toimii ja miten se siirtää dataa. Tässä luvussa käsitellään formaatteja kuten JSON ja XML, joita voidaan käyttää datan välittämiseen palvelimen vastauksen body-osassa tai kun lähetetään pyyntö palvelimelle.
Mikä on JSON?
JSON:ia käytetään datan siirtämiseen avain-arvo-muodossa, mikä tekee datan käsittelystä erittäin kätevää ja mahdollistaa sen muuntamisen suoraan olioksi.
Tämä formaatti tukee taulukoita, olioita sekä primitiiviarvoja kuten merkkijonoja, lukuja ja totuusarvoja.
Tietomuodot JSON-muodossa
JSON-taulukoille voidaan käyttää seuraavaa syntaksia:
{
"courses": ["Math", "Science"]
}
Kaikki tiedot suljetaan aaltosulkeisiin ja avainsana (esim. "courses") määritellään lainausmerkeissä. Tähän avaimeen liittyvä arvo on tässä tapauksessa taulukko (["Math", "Science"]), joka suljetaan hakasulkeisiin osoittamaan, että kyseessä on taulukko.
Jos haluamme siirtää yksinkertaisia primitivityyppejä (kuten numeroita, merkkijonoja tai boolean-arvoja) JSON-muodossa, voimme tehdä sen seuraavasti:
{
"name": "John Doe",
"age": 30,
"isStudent": false
}
Voimme siirtää olioita JSON-muodossa. Olio esitetään joukolla avain-arvo-pareja, jotka on suljettu kaarisulkeisiin.
{
"address": {
"street": "123 Main St",
"city": "Anytown"
}
}
Jokainen avain on merkkijono ja sitä seuraa kaksoispiste, jonka jälkeen tulee vastaava arvo, joka voi olla toinen objekti, taulukko, primitivityyppi tai null.
JSON-tiedon siirtäminen HTTP:n kautta
Kun tietoa siirretään JSON-muodossa HTTP-yhteyden kautta, sekä pyynnöissä että vastauksissa käytetään Content-Type -otsaketta, jonka arvona on application/json. Pyynnössä data sijoitetaan pyynnön runkoon, kun taas vastauksessa data sijoitetaan vastauksen runkoon.
Pyynnön rakenne:
POST /api/users HTTP/1.1
Host: example.com
Content-Type: application/json
{
"name": "John Doe",
"age": 30
}
Vastauksen rakenne:
HTTP/1.1 200 OK
Content-Type: application/json
{
"status": "success",
"data": {
"userId": 12345
}
}
JSON-serialisointi ja -deserialisointi
Serialisointi muuntaa olion tai tietorakenteen muotoon, joka soveltuu verkkosiirtoon tai tiedostojen tallennukseen.
Deserialisointi on käänteinen prosessi, jossa muunnetaan tiedot JSON-muodosta takaisin olioksi tai tietorakenteeksi käytettäväksi koodissa.
Riippuvuus videolta JSON-serialisoinnin ja deserialisoinnin integrointiin. Tämä on välttämätöntä, jotta voidaan käyttää ObjectMapper-luokkaa.
Tämä riippuvuus tulee lisätä pom.xml -tiedostoon ja päivittää se.
Kuinka käyttää Maven-repositoriota
Mitä on XML?
XML esittää dataa käyttämällä tageja, jotka muodostavat hierarkkisen rakenteen. Jokaisella elementillä on sekä avaus- että sulkutagit, ja niillä voi olla myös attribuutteja.
XML-syntaksi
<person>
<name>John Doe</name>
<age>30</age>
<isStudent>false</isStudent>
<courses>
<course>Math</course>
<course>Science</course>
</courses>
<address>
<street>123 Main St</street>
<city>Anytown</city>
</address>
</person>
Kuten huomaat, kaikki perustuu tageihin. Listat ja oliot eivät ole luonteeltaan erilaisia, mutta jos haluamme esittää yksinkertaisen arvon, tagin nimi toimii avaimena ja tägien sisällä oleva arvo on arvo.
XML:n siirto HTTP:n kautta:
XML-tiedon välittämiseen Content-Type -otsake voidaan asettaa joko arvoon application/xml tai text/xml. Data sijoitetaan myös pyynnön tai vastauksen runkoon.
Esimerkki pyynnöstä:
POST /api/users HTTP/1.1
Host: example.com
Content-Type: application/xml
<user>
<name>John Doe</name>
<age>30</age>
</user>
Esimerkki vastauksesta:
HTTP/1.1 200 OK
Content-Type: application/xml
<response>
<status>success</status>
<data>
<userId>12345</userId>
</data>
</response>
XML-serialisointi ja -deserialisointi
Riippuvuus videolta XML:n serialisoinnin ja deserialisoinnin integrointiin. Tämä on välttämätöntä, jotta voidaan käyttää XmlMapper-luokkaa.
Tämä riippuvuus tulee lisätä pom.xml -tiedostoon ja päivittää se.
Yhteenveto
JSON on ensisijainen valinta nykyaikaisissa verkkosovelluksissa sen kevyen ja yksinkertaisen rakenteen vuoksi. Vaikka XML voi olla vähemmän kätevä monissa verkkotilanteissa, se voi olla hyödyllinen tapauksissa, joissa tarvitaan monimutkaista tietorakennetta ja tiukkoja skeemoja.
1. Mitä muotoa käytetään esittämään tietoa key-value-pareina ja joka on kevyempi sekä kätevämpi tiedonsiirrossa verkon yli?
2. Mikä seuraavista koodiesimerkeistä on kelvollinen JSON?
Kiitos palautteestasi!