JavaRush /Курсы /Java Collections /Учимся гуглить | 3 уровень | 11 лекция

Учимся гуглить | 3 уровень | 11 лекция

Java Collections
3 уровень , 11 лекция
Открыта

— Вот тебе несколько заданий:

  Что надо найти в Google
1 Что такое JSON
2 В чем связь JSON и JavaScript
3 Как использовать Jackson
4 Java jackson. Как настроить сериализацию в JSON
5 Настройка JAXB
6 Сериализация в JAXB примеры
7 Аннотации в JAXB
8 Документация по Jackson
9 Документация по JAXB
10 Проблемы десериализации в Jackson
Комментарии (35)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
milniy87 Уровень 41
20 марта 2023
10. Проблемы десериализации в Jackson могут возникать, если JSON-данные не соответствуют ожидаемому формату или если есть несоответствие между типом поля в Java-классе и типом значения в JSON. Решение проблемы может включать в себя следующие шаги: Проверить, соответствуют ли JSON-данные ожидаемому формату. Например, если ожидается число, а приходит строка, возникнет ошибка десериализации. Проверить, что все поля в Java-классе имеют соответствующий тип данных и аннотации для десериализации. Использовать аннотации в Jackson для настройки десериализации, например, @JsonIgnore для исключения поля из десериализации или @JsonFormat для задания формата даты и времени. Использовать кастомные десериализаторы в Jackson для обработки сложных типов данных, которые не могут быть автоматически десериализованы. Кастомные десериализаторы могут быть созданы путем реализации интерфейса JsonDeserializer. Использовать отладочный режим в Jackson, чтобы узнать больше о проблеме десериализации и получить информацию о том, какие данные не могут быть десериализованы. Например, можно использовать метод ObjectMapper.readValue() в отладочном режиме, чтобы получить исключение и стек вызовов для проблемной десериализации.
Станислав Future Уровень 39
19 августа 2022
Разве это погуглить? Вот разобраться с каждым импортированным классом из прошлой задачи..
Евгений Т. Уровень 39
3 августа 2022
Мне эта идея очень нравиться, это своего рода рефлексия по пройденному материалу, чего на предыдущих квестах не было. Заставляет вспомнить еще раз пройденный материал, а где-то может и углубиться.
LuneFox Уровень 41 Expert
13 января 2022

	Документация по Jackson
Таки задание-то нагуглить или освоить? Если нагуглить, то это чрезмерно легко. Если освоить, то это чрезмерно трудно.
Дмитрий Рыбин Уровень 41
1 февраля 2022
LuneFox Уровень 41 Expert
1 февраля 2022
Ты пошёл по первому пути, молодец :)
Yarik Уровень 44
30 ноября 2021
Да, тут отдельный курс нужен чтобы во все тонкости вникнуть.
barracuda Уровень 41 Expert
5 февраля 2021
Тема довольно простая, если поверхностно изучать. Но забывается быстро, поэтому решил освежить: 1. Что такое JSON? JSON (англ. JavaScript Object Notation, обычно произносится как /ˈdʒeɪsən/ JAY-sən[2]) — текстовый формат обмена данными, основанный на JavaScript. Как и многие другие текстовые форматы, JSON легко читается людьми. Формат JSON был разработан Дугласом Крокфордом[3]. Несмотря на происхождение от JavaScript (точнее, от подмножества языка стандарта ECMA-262 1999 года), формат считается независимым от языка и может использоваться практически с любым языком программирования. Для многих языков существует готовый код для создания и обработки данных в формате JSON. 2. В чем связь JSON и JavaScript? javascript язык при помощи которого в браузере все оживает. Так же есть nodejs, это такой же javascript, только для небраузера. А json это синтаксис, который разработан специально для конфигов. Вот например чтобы Вы увидели список всех своих друзей в соц сетях, браузерный javascript посылает запрос на сервер-nodejs. Последний выбирает из базы данных всю информацию и формирует конфиг, который в виде строки передается по интернету и попадает в браузер, где браузерный javascript, который чаще называют js (не путать с java, java это совершенно другой язык) отображает этот конфиг.
barracuda Уровень 41 Expert
5 февраля 2021
3. Как использовать Jackson? Подключить в проект завивимости с maven репозитория. Например, три библиотеки Jackson Databind, Jackson Core, Jackson Annotations. Использовать аннотации. Например, сериализуемый класс пометить @JsonAutoDetect. Создать объект com.fasterxml.jackson.databind.ObjectMapper. Для сериализации на нем вызвать метод write(...), первым аргументом которого указать writer, в который пишем JSON объект, вторым аргументом указать сериализуемый объект. Или вызвать на объекте ObjectMapper метод writeValueAsString() с единственным аргументом - сериализуемый объект. Этот метод сразу возвращает строку, поэтому можно вот так: String resultJson = new ObjectMapper().writeValueAsString(ourObject); Для десериализации на объекте класса ObjectMapper вызвать метод readValue(...), первым аргументом указать reader, откуда чтаем объект, вторым - класс предполагаемого объекта к десериализации (Object.class) 4. Java jackson. Как настроить сериализацию в JSON? Вот тут серия видеоуроков. Ну а если вкратце - описано выше в 3-м пункте.
barracuda Уровень 41 Expert
5 февраля 2021
5. Настройка JAXB. Не знаю, что имеется ввиду. Может быть, вот это: "JAXB – это часть JDK, поэтому скачивать его отдельно не требуется." Ну или добавить в свой класс импорты: import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Marshaller;
barracuda Уровень 41 Expert
5 февраля 2021
6. Сериализация в JAXB примеры Примеры по ссылке. А паттерн такой: создать контекст: JAXBContext jaxbContext = JAXBContext.newInstance(OurClass.class); Создать объект - маршаллер: Marshaller marshaller = jaxbContext.createMarshaller(); Установить свойство маршаллера, чтобы красиво с пробелами и не в одну строчку: marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); И сериализовать наш объект (obj) с помощью метода marshal(), записать его во writer: marshaller.marshal(obj, writer); Если нужна десериализация, то создаем анмаршаллер и используем метод unmarshal, вычитывая объект из reader, который его хранит.: Unmarshaller unmarshaller = context.createUnmarshaller(); Object o = unmarshaller.unmarshal(reader);
barracuda Уровень 41 Expert
5 февраля 2021
7. Аннотации в JAXB. Основные JAXB аннотации Аннотация @XmlRootElement определяет корневой элемент для содержимого XML. Аннотация @XmlType используется для упорядочения элементов в XML. Аннотацией @XmlTransient помечается то, что не будет не записано в XML. Аннотацией @XmlAttribute помечается то, что будет использовано в качестве атрибута. Аннотация @XmlElement(name="qwerty") — создаст элемент с именем «qwerty». Также часто используются следующие аннотации: @XmlElementWrapper — обертка вокруг коллекций для читабельности сгенерированного XML Объекты другого класса помечаются аннотацией @XmlSeeAlso. @XmlEnum и @XmlEnumValue — для Enum и значений @XmlElements — создание контейнеров для нескольких @XmlElement
barracuda Уровень 41 Expert
5 февраля 2021
8. Документация по Jackson 9. Документация по JAXB 10. Проблемы десериализации в Jackson. Ну какие тут проблемы... Десериализация массива. Десериализация дженериков... можно попробовать решить с помощью аннотаций @JsonDeserialize(as = тра-та-та.class) @JsonDeserialize(contentAs=тра-та-та.class) @JsonDeserialize(keyAs=тра-та-та.class) А вообще, поскольку фреймворк довольно емкий, то проблем может быть миллион. Если начать гуглить, люди много вопросов задают...
Тимур Уровень 41
10 марта 2021
Барракуда, оста-а-анови-и-и-итесь!!!! ))) Спасибо конечно, большое! Но мы же вроде сами должны научиться это все гуглить, ну идея вроде такая была )))
Dmitry Vasilyev Уровень 26
27 апреля 2021
Ну, вот, допустим, погуглил я, и первой ссылкой - барракудины комментарии на этой странице. Так будет считаться, что я погуглил? 😂
Igor Уровень 41
5 июня 2021
Dmitry Vasilyev 🤣👍
Elena Vasilyeva Уровень 35
24 ноября 2021
Извините, но, думаю, ответ на второй вопрос не совсем верный. Первая же ссылка в гугле на данный момент дает более логичный ответ. Но вообще спасибо за ответы!
Евгений Т. Уровень 39
4 августа 2022
Действительно многие вопросы совсем не понятны, чего хочет от тебя автор, что значит настройка? Гугл на этот вопрос тоже не отвечает и официальная документация молчит.
Galina K. Уровень 39
22 декабря 2022
5. Настройка JAXB. Может опять же речь о добавлении нужных jdk через Modules-Dependencies...
И. Ж. Уровень 41
23 ноября 2023
Спасибо! Развернутый четкий ответ, экономия времени для других, а гуглить дело нехитрое
Евгений Уровень 41 Expert
18 июня 2020
Гуглить я конечно не буду.
Vorlock Уровень 31
18 января 2020
"очень" полезная лекция ))
Сергей Уровень 31
25 сентября 2019
Список ответов на вопросы выше(может, кому нужно): https://javarush.com/groups/posts/1654-urovenjh-33-otvetih-na-voprosih-k-sobesedovaniju-po-teme-urovnja
Андрей Жезлов Уровень 35
11 февраля 2020
Это не те ответы