-
Що таке JSON?
JSON (JavaScript Object Notation) — простий формат обміну даними, що базується на підмножині мови програмування JavaScript.
-
У чому відмінності Java та JavaScript?
Це дві різні мови програмування, незважаючи на схожість їх назв. Обидва мають С-подібний синтаксис. Відмінності такі:
- Java реалізує ООП підхід, що базується на класах, JavaScript - на прототипах;
- Java має статичну типізацію, JavaScript - динамічну типізацію;
- Java завантажується зі скомпілованого байт-коду; JavaScript інтерпретується безпосередньо із файлу.
-
У чому відмінність JSON та XML?
JSON – формат обміну даними.
XML — мова розмітки (у якій можна задати синтаксис, структуру, типи даних і їх модель).
Обидва можуть бути використані передачі даних. Звичайно, для роботи з обома стандартами використовуються різні фреймворки, відрізняється синтаксис.
-
Які фреймворки для роботи з JSON ви знаєте?
33 Рівень познайомив нас із фрейворком jackson. На додаток я наведу ще 3 і посилання на статтю, в якій вони порівнюються:
- Jackson від FasterXML
- JSON.simple від Yidong Fang
- GSON від Google
- JSONP від Oracle
Порівнюємо Java-бібліотеки для роботи з JSON: JSON.simple, GSON, Jackson та JSONP
-
Які фреймворки для роботи з XML ви знаєте?
Оскільки XML є форматом представлення даних, технології для роботи з ним різноманітнішими. Я наведу технології, які використовуються для серіалізації Java об'єктів у XML:
- JAXB (входить до J JDK)
- Xstream
Посилання з коротким оглядом різних фреймворків для роботи з XML: JAVA + XML
-
Які інструкції Jackson ви знаєте?
Розберемо ті, що використовувалися у лекціях:
- @JsonAutoDetect - ставиться перед класом. Повідомляє Jackson, що необхідно використовувати поля цього класу під час запису чи читання. У дужках можна встановити параметр (fieldVisibility = JsonAutoDetect.Visibility.ANY ), для налаштування видимості полів, які будуть використовуватися (за замовчуванням використовуються тільки public поля).
- @JsonIgnore - ставиться перед полем. Повідомляє Jackson, що це поле потрібно ігнорувати під час читання/запису.
- @JsonProperty - Ставиться перед полем, getter'ом або setter'ом. Дозволяє встановити інше ім'я поля під час серіалізації.
- @JsonWriteNullProperties - Ставиться перед класом. Поля об'єкта, які дорівнюють null не буде ігноруватися.
- @JsonPropertyOrder - Ставиться перед класом. дозволяє визначити порядок, в якому поля java об'єкта будуть серіалізовані в JSON.
- @JsonDeserialize - Ставиться перед полем. Дозволяє визначити клас, де десеріалізується JSON об'єкт. Наприклад з Java масиви та списки серіалізуються в масиви, і при десеріалізації можна вибрати, що саме ми хочемо отримати.
Ось посилання на сайт з деякими інструкціями: Jackson Annotations
-
Які інструкції JAXB ви знаєте?
Також розберу тільки ті, які використовувалися в лекції:
- @XmlRootElement - Ставиться перед класом. Вказує те що, що це об'єкт то, можливо, елементом самого верхнього рівня, тобто. решта елементів лежать у ньому.
- @XmlType — Ставиться перед класом. Додає до XML-схеми додаткову інформацію. Можна вказати деякі атрибути, наприклад, порядок елементів ім'я і т.д.
- @XmlElement - Ставиться перед полем. Дозволяє вказати ім'я xml-елемента, значення за промовчанням і т.д.
- @XmlElementWrapper — Ставиться перед полем або гетером. Дозволяє створити обрамляючий тег для групи елементів.
- @XmlJavaTypeAdapter — Ставиться перед класом. У дужках вказується допоміжний клас-адаптер, необхідний маршабозации/демаршализации даного класу.
- @XmlEnum - Ставиться перед enum. У дужках можна вказати тип, у якому буде представлено значення enum.
- @XmlEnumValue — Ставиться перед значенням enum. Дозволяє встановити спеціальне значення для даного значення enum.
@XmlAttribute — Ставиться перед полем. Поле буде представлено як атрибут XML. Ось посилання на сайт з деякими анотаціями (перепрошую, що не зумів скласти коректний переклад для анотацій, інформація сприймається для розуміння, але зовсім не уявляю, як це грамотно сказати російською): https://jaxb.java.net/tutorial/index .html
-
У чому відмінність серіалізації та десеріалізації в JSON?
Не зрозумів суть питання. Порівнювати 2 взаємозворотні процеси сенсу не бачу. Можливо було на увазі порівняння JSON і XML, на цю тему в наступному питанні наведено посилання.
-
Що краще за JSON або XML? Чому?
Ось чудова стаття, в якій порівнюється JSON та XML: JSON та XML. Що краще?
Мабуть, не можна казати, що щось краще. При виборі варто дивитися на завдання і те, що буде ефективніше у використанні. Плюс вибір може залежати від особистих переваг розробника.
-
Що таке DTO?
DTO (Data Transfer Object) — патерн проектування, що містить дані без будь-якої логіки для роботи з ними. DTO зазвичай використовуються для передачі даних між різними програмами, або між шарами всередині однієї програми. Їх можна як сховище інформації, єдина мета якого — передати цю інформацію одержувачу.
виправлено питання №2, №3, згідно з зауваженням
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ