15.2 Test - JSON (15.1)

Over si svoje vedomosti z kapitoly o kotlinx serialization. Klikni na Áno alebo Nie - tlačidlo sa hneď zafarbí (zelená = správne, červená = nesprávne) a zobrazí sa komentár s vysvetlením. Otázky prechádzaš po jednej pomocou tlačidiel nižšie.

Otázka 1 / 11

kotlinx serialization je knižnica od JetBrainsu určená na serializáciu a deserializáciu dát.

Áno. Na rozdiel od Gson je typovo bezpečná a kód pre serializáciu generuje priamo pri kompilácii.

Aby sme mohli kotlinx serialization používať, musíme do build.gradle.kts pridať plugin kotlin("plugin.serialization").

Áno. Bez tohto pluginu by anotácia @Serializable nefungovala, keďže sa kód pre (de)serializáciu generuje práve pomocou neho.

Triedu označíme ako serializovateľnú anotáciou @Serializable umiestnenou priamo pred jej deklaráciou.

Áno. Napríklad @Serializable data class Person(val name: String, val age: Int).

Funkcia Json.decodeFromString<Person>(json) prevedie objekt Person na JSON reťazec.

Nie. decodeFromString robí opak - prevedie JSON reťazec na objekt. Na prevod objektu na JSON slúži Json.encodeToString(...).

kotlinx serialization dokáže serializovať aj kolekcie, napríklad List<Student>, nielen jednoduché objekty.

Áno. Zoznam serializovateľných objektov sa prevedie na JSON pole rovnako jednoducho ako jeden objekt.

Nastavenie Json { ignoreUnknownKeys = true } umožní deserializáciu JSON dokumentu, ktorý obsahuje polia navyše oproti definícii triedy.

Áno. Bez tohto nastavenia by neznáme polia v JSON spôsobili chybu pri parsovaní.

Bez nastavenia ignoreUnknownKeys = true je predvolené správanie kotlinx serialization tiché ignorovanie neznámych polí v JSON.

Nie. Predvolene knižnica pri neznámom poli vyhodí výnimku - práve preto musíme ignoreUnknownKeys zapnúť explicitne.

Anotácia @Serializable sa dá použiť ako na data class, tak aj na bežnú class.

Áno. Serializácia nie je viazaná len na dátové triedy, funguje aj pre bežné triedy.

Do build.gradle.kts pri používaní kotlinx serialization netreba pridávať žiadnu ďalšiu závislosť okrem samotného pluginu.

Nie. Okrem pluginu treba pridať aj závislosť org.jetbrains.kotlinx:kotlinx-serialization-json do bloku dependencies.

kotlinx serialization je alternatívou ku knižnici Gson pri práci s JSON dátami v Kotline.

Áno. Obe knižnice riešia rovnaký problém (serializáciu), líšia sa hlavne prístupom - kotlinx serialization je typovo bezpečnejšia.

Volanie Json.encodeToString(students), kde students je List<Student>, vráti JSON pole objektov Student.

Áno. Napríklad výsledok by vyzeral ako [{"name":"Janko","grades":[1,2,1]},...].

Tvoje skóre je 0 / 11