Серіалізація – це процес передання стану об'єкта в потік байтів для збереження його в пам'яті, у базі даних або у файлі.
Основне призначення серіалізації – зберегти стан об'єкта для того, щоб мати можливість відновити його за потреби.
Зворотний процес серіалізації називається десеріалізацією.
Міжпроцесна, міждоменна та міжрівнева серіалізація-десеріалізація, називається маршалингом-демаршалингом.
Інтерфейс Serializable
Клас об'єкта, який серіалізується, має реалізувати інтерфейс java.io.Serializable : import java.io.Serializable;
сlass Test implements Serializable{
public byte num = 100;
public byte count = 0;
}
Інтерфейс Serializable – це інтерфейс-маркер, у ньому не задекларовано жодного методу. Він говорить серіалізованому механізму, що клас може бути серіалізованим.
Серіалізація відбувається викликом методу writeObject() класу java.io.ObjectOutputStream. Відновлення об'єкта відбувається з допомогою виклику методу readObject().
Серіалізація
За замовчуванням процес серіалізації полягає в серіалізації кожного поля об'єкта, яке не позначене як transient або static.
Також цей процес передбачає, що всі поля-об'єкти, які підлягають серіалізації, мають вказувати на типи, що зі свого боку підтримують можливість серіалізації.
Окрім цього, потрібно, щоб клас, базовий щодо до аналізованого, або мав конструктор без параметрів (щоб міг бути викликаний в процесі десеріалізації), або сам зі свого боку забезпечував реалізацію інтерфейсу Serializable (у такому випадку реалізація того ж інтерфейсу у похідному класі буде надмірним рішенням).
eXtensible Markup Language
XML – текстовий формат, який призначений для зберігання структурованих даних (замість наявних файлів баз даних), для обміну інформацією між програмами, а також для створення на його основі спеціалізованих мов розмітки.
Мова називається розширюваною, оскільки вона не фіксує розмітку, що використовується в документах. Розробник може створити розмітку відповідно до потреб конкретної області, бувши обмеженим лише синтаксичними правилами мови.
Структура XML
Документ XML:
• оголошення XML – перший рядок документа, в якому вказується версія, кодування тексту та інші залежності;
• кореневий елемент є основним тілом документа, кожен документ може мати лише один кореневий елемент;
• теги – вкладені елементи документа, можуть мати атрибути та вміст;
• коментарі – текст, який розміщений у тезі.
<?xml version=“1.0” encoding=“iso-8859-1”? >
<!--This is a comment-- >
<catalog>
<book>
<title fontsize=“8”>Thinking In Java 4 th Edition</title >
<price currency=“$”>30 </price>
</book>
</catalog>
DOM
DOM (від англ. Document Object Model – «об'єктна модель документа») – це програмний інтерфейс, який не залежить від платформи та мови, що дає змогу програмам отримати доступ до вмісту HTML, XHTML та XMLдокументів, а також змінювати вміст, структуру та оформлення таких документів.
Модель DOM не накладає обмежень на структуру документа. Будь-який документ відомої структури за допомогою DOM може бути представлений у вигляді дерева вузлів, кожен вузол якого є елементом, атрибутом, текстовим, графічним або будь-яким іншим об'єктом.
Вузли пов'язані між собою відношеннями «батьківський-дочірній».
Сама модель DOM – це кінцевий результат аналізу XML-рядка (з файлу або з якогось іншого джерела, наприклад, з мережі за URL).
Типи вузлів
• Document – контейнер для всіх вузлів у дереві. Він також називається коренем документа.
• Element – елемент.
• Attribute – атрибут элементу.
• Text – текст.
JAXB
Java Architecture for XML Binding (JAXB) дає змогу розробникам ставити у відповідність Java-класи та XML-представлення.
JAXB надає дві основні можливості: маршалірування Java-об'єктів у XML і навпаки, тобто демаршалізація з XML назад у Java-об'єкт.
Маршалинг — процес перетворення представлення об'єкта в пам'яті у формат даних, який придатний для зберігання або передання. Зазвичай застосовується, коли дані необхідно передавати між різними частинами однієї програми або від однієї програми до іншої.
Анмаршалинг – зворотний процес маршалингу.
JavaScript Object Notation
JSON (англ. JavaScript Object Notation) – текстовий формат обміну даними, що ґрунтується на JavaScript і зазвичай використовується саме з цією мовою. Як і багато інших текстових форматів, JSON легко читається людьми.
Попри походження від JavaScript, формат вважається мовно незалежним і може використовуватися практично з будь-якою мовою програмування.
Типи значень, що зберігаються:
• Об'єкт.
• Одновимірний масив.
• Значення.
• Рядок.
GSON – безоплатна бібліотека для роботи з JSON від Google.
{
“book”: {
“author”: “Ivan Ivanovych”,
“title”: “About me”,
“price”: 11.9,
}
“book”: {
“author”: “David”,
“title”: “About Java”,
“price”: Free,
}
“distributors”: [“Ukraine”, “Book shop”]
}
SAXParser
Simple API for XML
SAX – це набір класів та інтерфейсів, завдання яких дати механізм розбору XML у рядковому представленні.
Основними є два класи:
1. SAXParser
2. DefaultHandler
Q&A
Дякую всім за заняття!🙌🏻
❗️🎓Тема уроку: 7. Serialization XML & JSON
Нагадую, що дедлайн здачі домашніх робіт – до наступного уроку.
Якщо виникають складнощі, пишіть, допоможу із задоволенням 😌
Запис лекції тренер опублікує трохи пізніше 🖥
Не забудьте повторити матеріал та підготуватися до наступного уроку📚
Успіху і до зустрічі!🤩
OOP. 1
Назва
Кількостей
Ціна
Рік виготовлення
Виробник
Визначити найдорожчий товар на складі та надрукувати всі відомості про нього.
OOP. 2
Назва
Частота
Об'єм оперативної пам'яті
Наявність DVD ROM
Вартість
Обчислити середню вартість усіх комп'ютерів і надрукувати найменування комп'ютерів та їхню середню вартість.
OOP. 3
Прізвище
Рік народження
Посада
Зарплата
Освіта
Визначити кількість працівників - інженерів і надрукувати всі відомості про них.