Урок 51: "Основы работы с данными - работаем с JSON"
Vložit
- čas přidán 9. 07. 2024
- Пожертвования - boosty.to/lazyloadflutter
______
Канал с анонсами в телеграм - t.me/lazyload_flutter
______
Группа в телеграм - t.me/learnDartFlutter
______
Группа в вк - club203125105
______
Код урока для подписчиков Boosty - github.com/JonFir/lazyload_fl...
______
0:00 - Вступление
0:45 - Что такое JSON
2:33 - Типы данных
4:30 - Разбираем пример JSON
21:00 - Пишем сериализацию руками
43:20 - Используем json_serializable
Везде про JSON пишут. Оказывается вообще не сложная тема) Спасибо за урок!
никогда не писал комменты на ютубе, но сейчас реально от благодарности распирает. спасибо!!!
Cпасибо за лучшее объяснение работы с json!
Спасибо! Очень полезный урок!
Если при кодогенерации JSON, у кого выходит вот такая ошибка "Generator cannot target libraries that have not been migrated to null-safety.",
обратите внимание на версии json_annotation и json_serializable версии пакетов должны поддерживаться в environment SDK
Спасибо! Интересно было узнать как работать с JSON с помощью кодогенерации 👍
Пол дня мучался, пришёл к некоторым выводам, может помогу кому-то, если "address.g.dart" не создаётся, сначала сохраните этот файл Ctrl + S, и только потом - flutter pub run build_runner build
Если же при создании "address.g.dart" выдаёт ошибку, мне помогли следующие команды в терминале:
-flutter clean
-flutter pub cache repair
-flutter pub run build_runner clean
И наконец-то
-flutter pub get
-flutter pub run build_runner build
Наконец то я понял. Спасибо.
Спаибо! Спасибо! Вы реально момогаете и я думаю всем. Всего вам наиулчшего!
большое спасибо за урок. Респект автору за такой контент.🔥
Спасибо за полезнейший контент!
Было бы круто увидеть один урок по factory, что и как.
Очень хорошее объяснение ! Спасибо! Жаль что только сейчас набрел на этот канал, а не раньше.
спасибо!
Как всегда на высоте 🤓🔥
спасибо, Евгений, за такой труд!
Отличный урок. Большое спасибо!
Спасибо за очередной отличный урок !
Разложил по полочкам. Всё по теме.
Спасибо большое за видео
Отличный урок, спасибо! try catch, конечно нужно народ приучать везде использовать ) Кстати, интересно - как по феншую обрабатывать исключение, я имею ввиду где регистрировать событие (по аналогии с журналом приложения сервера) и как сообщать разработчику об исключении
Хм..С ссылкой коммент потерло, но попробую без ссылки . Первое - классные, внятные уроки! Firebase - очень жду). И еще - после тучи попыток рекомендую приложение в VS Code - Dart Data Class Generator (Beta). Да, бета. Но на месте, быстро и без ошибок, генерирует модель для очень развесистого Json (из погодного API), без ручной работы, которая необходима в json_serializable.
Я вот недавно исспользовал этот плагин VS Code - Dart Data Class Generator (Beta), но у меня почемуто криво сгенерировало, полезли ошибки. Попробовал описаную выше в видео генерацию и все нормально заработало
супер!
Спасибо за урок жаль что не будет урока про Dio
про хайв и провайдер походу тоже не будет ( печалька (
Большое спасибо
Круто
Привет!)) Как всегда пересматриваю снова. Подскажи в этом курсе есть уроки по firebase?
В Новосибирске не улицы Батурина 👻
Чисто теоретически, в будущем будет про Flutter + gRPC protobuf?))
спасибо за отличные видео уроки!
Нет)
Первый раз работал с JSON, пытался сделать как Евгений. в итоге пару часов ловил ошибку. Ошибка была в том, что я JSON файл неправильно оформил, поставил просто лишние запятые в конце файла..... будьте внимательны
спасибо! Надеюсь после блокировки ютуба вы продолжите выкладывать видеоролики и сюда, для аудитории не из России. Если это будет возможно
лайк👍
в JS это делается в одну строку, я в шоке )
Вы в начале сказали что Json это строка, а потом в методе fromJson вы считаете что вам должен прилететь массив.
Не правильно ли будет в методе fromJson получать на вход строку и там её парить?
Или я что-то пропустил?
а если нам надо json в dto класс перегнать , есть для этого что-то подобное?
так тоже самое
like
А как указать, что поле в джейсоне будет типа "дата"?
в json нет такого типа)
@@LearnDartFlutter я неправильно выразился. Имел ввиду, есть ли какая-то аннотация у того генератора кода, с помощью которой можно было бы ему подсказать что вот "это" поле - это не просто строка, а дата, т.е. чтобы он после прочтения значения поля и сконвертировал бы его в наше поле класса типа "дата"
Доброго времени суток!
Можно обратиться с одной просьбой? )
Мы в команде переписываем один проект с RN на Flutter так как уперлись в потолок производительности RN. Проект с огромными списками на сокетах.Уже готовы в принципе на релиз но уже поймали несколько раз баг когда команда на бекенде добавляет поле (ключ) в JSON и мы ловим баг что модель не готова принять дополнительное поле так как оно не описано.
Например у меня такая модель
@freezed
class Instrument with _$Instrument {
const factory Instrument({
@Default('') String symbol,
@Default('') String description,
}) = _Instrument;
factory Instrument.fromJson(Map json) => _$InstrumentFromJson(json);
}
А бекенд взяли и добавили еще одно поле ключ например "String typeName" и соответсвенно Instrument.fromJson() метод мне ничего не отпадёт так как такое поле не описано в моей модели. Есть какой то нормальный путь как это обойти не дергая на горячую json['symbol'] и т.д.
Не подскажете со своего опыта как можно обойти такой баг?
Заранее благодарю
Андрей.
Не очень понял проблемы. Если добавить новое поле то клиент будет корректно работать, и получать данные, но конечно, данное поле он не получит, потому что не знает про него.
Так что если у вас что то добавили на бекенде и вам надо его использовать, меняйте модель на клиенте.